@fragno-dev/core 0.1.2 → 0.1.4

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 (56) hide show
  1. package/.turbo/turbo-build.log +40 -31
  2. package/CHANGELOG.md +15 -0
  3. package/LICENSE.md +16 -0
  4. package/dist/api/api.d.ts +1 -1
  5. package/dist/api/fragment-builder.d.ts +2 -2
  6. package/dist/api/fragment-instantiation.d.ts +2 -2
  7. package/dist/api/fragment-instantiation.js +3 -2
  8. package/dist/{api-jKNXmz2B.d.ts → api-BX90b4-D.d.ts} +2 -2
  9. package/dist/{api-jKNXmz2B.d.ts.map → api-BX90b4-D.d.ts.map} +1 -1
  10. package/dist/client/client.d.ts +2 -2
  11. package/dist/client/client.js +4 -3
  12. package/dist/client/client.svelte.d.ts +2 -2
  13. package/dist/client/client.svelte.js +4 -3
  14. package/dist/client/client.svelte.js.map +1 -1
  15. package/dist/client/react.d.ts +2 -2
  16. package/dist/client/react.js +4 -3
  17. package/dist/client/react.js.map +1 -1
  18. package/dist/client/solid.d.ts +2 -2
  19. package/dist/client/solid.js +4 -3
  20. package/dist/client/solid.js.map +1 -1
  21. package/dist/client/vanilla.d.ts +2 -2
  22. package/dist/client/vanilla.js +4 -3
  23. package/dist/client/vanilla.js.map +1 -1
  24. package/dist/client/vue.d.ts +2 -2
  25. package/dist/client/vue.js +4 -3
  26. package/dist/client/vue.js.map +1 -1
  27. package/dist/{client-CzWq6IlK.js → client-C6LChM0Y.js} +4 -3
  28. package/dist/{client-CzWq6IlK.js.map → client-C6LChM0Y.js.map} +1 -1
  29. package/dist/{fragment-builder-B3JXWiZB.d.ts → fragment-builder-BZr2JkuW.d.ts} +35 -35
  30. package/dist/fragment-builder-BZr2JkuW.d.ts.map +1 -0
  31. package/dist/fragment-builder-DOnCVBqc.js.map +1 -1
  32. package/dist/{fragment-instantiation-D1q7pltx.js → fragment-instantiation-D74OQjbn.js} +4 -3
  33. package/dist/fragment-instantiation-D74OQjbn.js.map +1 -0
  34. package/dist/integrations/react-ssr.js +1 -1
  35. package/dist/mod.d.ts +2 -2
  36. package/dist/mod.js +3 -2
  37. package/dist/route-CTxjMtGZ.js +10 -0
  38. package/dist/route-CTxjMtGZ.js.map +1 -0
  39. package/dist/{route-DbBZ3Ep9.js → route-D1MZR6JL.js} +2 -10
  40. package/dist/route-D1MZR6JL.js.map +1 -0
  41. package/dist/{ssr-CamRrMc0.js → ssr-BByDVfFD.js} +1 -1
  42. package/dist/{ssr-CamRrMc0.js.map → ssr-BByDVfFD.js.map} +1 -1
  43. package/dist/test/test.d.ts +112 -0
  44. package/dist/test/test.d.ts.map +1 -0
  45. package/dist/test/test.js +155 -0
  46. package/dist/test/test.js.map +1 -0
  47. package/package.json +18 -24
  48. package/src/api/fragment-builder.ts +0 -1
  49. package/src/api/request-middleware.test.ts +251 -0
  50. package/src/api/request-middleware.ts +1 -1
  51. package/src/test/test.test.ts +504 -0
  52. package/src/test/test.ts +379 -0
  53. package/tsdown.config.ts +1 -0
  54. package/dist/fragment-builder-B3JXWiZB.d.ts.map +0 -1
  55. package/dist/fragment-instantiation-D1q7pltx.js.map +0 -1
  56. package/dist/route-DbBZ3Ep9.js.map +0 -1
@@ -1,58 +1,67 @@
1
- $ tsdown
2
- ℹ tsdown v0.15.9 powered by rolldown v1.0.0-beta.44
1
+
2
+ > @fragno-dev/core@0.1.4 build /home/runner/work/fragno/fragno/packages/fragno
3
+ > tsdown
4
+
5
+ ℹ tsdown v0.15.11 powered by rolldown v1.0.0-beta.45
3
6
  ℹ Using tsdown config: /home/runner/work/fragno/fragno/packages/fragno/tsdown.config.ts
4
- ℹ entry: src/mod.ts, src/api/api.ts, src/api/fragment-builder.ts, src/api/fragment-instantiation.ts, src/client/client.svelte.ts, src/client/client.ts, src/client/react.ts, src/client/solid.ts, src/client/vanilla.ts, src/client/vue.ts, src/integrations/react-ssr.ts
7
+ ℹ entry: src/mod.ts, src/client/client.svelte.ts, src/client/client.ts, src/client/react.ts, src/client/solid.ts, src/client/vanilla.ts, src/client/vue.ts, src/api/api.ts, src/api/fragment-builder.ts, src/api/fragment-instantiation.ts, src/integrations/react-ssr.ts, src/test/test.ts
5
8
  ℹ tsconfig: tsconfig.json
6
9
  ℹ Build start
7
- ℹ dist/client/client.svelte.js  3.31 kB │ gzip: 0.97 kB
8
- ℹ dist/client/vanilla.js  3.30 kB │ gzip: 1.12 kB
9
- ℹ dist/client/solid.js  3.03 kB │ gzip: 0.97 kB
10
- ℹ dist/client/vue.js  2.86 kB │ gzip: 1.00 kB
11
- ℹ dist/client/react.js  2.48 kB │ gzip: 0.94 kB
10
+ ℹ dist/test/test.js  4.41 kB │ gzip: 1.67 kB
11
+ ℹ dist/client/client.svelte.js  3.35 kB │ gzip: 0.98 kB
12
+ ℹ dist/client/vanilla.js  3.33 kB │ gzip: 1.13 kB
13
+ ℹ dist/client/solid.js  3.06 kB │ gzip: 0.98 kB
14
+ ℹ dist/client/vue.js  2.89 kB │ gzip: 1.01 kB
15
+ ℹ dist/client/react.js  2.52 kB │ gzip: 0.95 kB
12
16
  ℹ dist/integrations/react-ssr.js  1.27 kB │ gzip: 0.65 kB
13
- ℹ dist/client/client.js  0.70 kB │ gzip: 0.29 kB
14
- ℹ dist/mod.js  0.36 kB │ gzip: 0.20 kB
15
- ℹ dist/api/fragment-instantiation.js  0.23 kB │ gzip: 0.16 kB
17
+ ℹ dist/client/client.js  0.73 kB │ gzip: 0.30 kB
18
+ ℹ dist/mod.js  0.39 kB │ gzip: 0.21 kB
19
+ ℹ dist/api/fragment-instantiation.js  0.26 kB │ gzip: 0.17 kB
16
20
  ℹ dist/api/api.js  0.17 kB │ gzip: 0.12 kB
17
21
  ℹ dist/api/fragment-builder.js  0.14 kB │ gzip: 0.11 kB
18
- ℹ dist/client-CzWq6IlK.js.map 72.61 kB │ gzip: 16.38 kB
19
- ℹ dist/route-DbBZ3Ep9.js.map 24.95 kB │ gzip: 6.76 kB
20
- ℹ dist/client-CzWq6IlK.js 24.49 kB │ gzip: 6.21 kB
21
- ℹ dist/fragment-instantiation-D1q7pltx.js.map 23.86 kB │ gzip: 6.38 kB
22
- ℹ dist/fragment-builder-B3JXWiZB.d.ts.map 19.11 kB │ gzip: 7.44 kB
22
+ ℹ dist/client-C6LChM0Y.js.map 72.61 kB │ gzip: 16.38 kB
23
+ ℹ dist/route-D1MZR6JL.js.map 24.54 kB │ gzip: 6.59 kB
24
+ ℹ dist/client-C6LChM0Y.js 24.53 kB │ gzip: 6.22 kB
25
+ ℹ dist/fragment-instantiation-D74OQjbn.js.map 23.87 kB │ gzip: 6.38 kB
26
+ ℹ dist/fragment-builder-BZr2JkuW.d.ts.map 19.09 kB │ gzip: 7.43 kB
27
+ ℹ dist/test/test.js.map 13.17 kB │ gzip: 3.82 kB
23
28
  ℹ dist/client/vanilla.js.map 12.96 kB │ gzip: 3.58 kB
24
29
  ℹ dist/client/client.svelte.js.map 11.35 kB │ gzip: 2.76 kB
25
- ℹ dist/client/solid.js.map 11.00 kB │ gzip: 2.79 kB
30
+ ℹ dist/client/solid.js.map 11.01 kB │ gzip: 2.79 kB
26
31
  ℹ dist/client/vue.js.map 10.12 kB │ gzip: 2.78 kB
27
32
  ℹ dist/client/react.js.map  9.54 kB │ gzip: 3.03 kB
28
- ℹ dist/fragment-instantiation-D1q7pltx.js  9.43 kB │ gzip: 2.86 kB
29
- ℹ dist/api-jKNXmz2B.d.ts.map  9.31 kB │ gzip: 3.59 kB
30
- ℹ dist/route-DbBZ3Ep9.js  8.96 kB │ gzip: 2.65 kB
33
+ ℹ dist/fragment-instantiation-D74OQjbn.js  9.47 kB │ gzip: 2.87 kB
34
+ ℹ dist/api-BX90b4-D.d.ts.map  9.31 kB │ gzip: 3.59 kB
35
+ ℹ dist/route-D1MZR6JL.js  8.72 kB │ gzip: 2.56 kB
31
36
  ℹ dist/api-DngJDcmO.js.map  5.54 kB │ gzip: 1.56 kB
32
- ℹ dist/fragment-builder-DOnCVBqc.js.map  3.50 kB │ gzip: 1.02 kB
33
- ℹ dist/ssr-CamRrMc0.js.map  2.96 kB │ gzip: 1.25 kB
37
+ ℹ dist/fragment-builder-DOnCVBqc.js.map  3.50 kB │ gzip: 1.03 kB
38
+ ℹ dist/ssr-BByDVfFD.js.map  2.96 kB │ gzip: 1.25 kB
34
39
  ℹ dist/client/vanilla.d.ts.map  2.89 kB │ gzip: 1.05 kB
35
40
  ℹ dist/client/react.d.ts.map  2.80 kB │ gzip: 1.19 kB
41
+ ℹ dist/test/test.d.ts.map  2.59 kB │ gzip: 1.07 kB
36
42
  ℹ dist/client/solid.d.ts.map  2.59 kB │ gzip: 1.07 kB
37
43
  ℹ dist/client/client.svelte.d.ts.map  2.54 kB │ gzip: 1.00 kB
38
44
  ℹ dist/client/vue.d.ts.map  2.28 kB │ gzip: 0.94 kB
39
45
  ℹ dist/integrations/react-ssr.js.map  1.65 kB │ gzip: 0.84 kB
40
- ℹ dist/ssr-CamRrMc0.js  1.38 kB │ gzip: 0.61 kB
46
+ ℹ dist/ssr-BByDVfFD.js  1.38 kB │ gzip: 0.61 kB
41
47
  ℹ dist/fragment-builder-DOnCVBqc.js  1.09 kB │ gzip: 0.42 kB
42
48
  ℹ dist/api-DngJDcmO.js  1.08 kB │ gzip: 0.43 kB
49
+ ℹ dist/route-CTxjMtGZ.js.map  0.50 kB │ gzip: 0.33 kB
50
+ ℹ dist/route-CTxjMtGZ.js  0.30 kB │ gzip: 0.22 kB
43
51
  ℹ dist/integrations/react-ssr.d.ts.map  0.23 kB │ gzip: 0.17 kB
52
+ ℹ dist/test/test.d.ts  4.61 kB │ gzip: 1.48 kB
44
53
  ℹ dist/client/vanilla.d.ts  3.65 kB │ gzip: 1.06 kB
45
54
  ℹ dist/client/react.d.ts  3.44 kB │ gzip: 1.20 kB
46
- ℹ dist/client/solid.d.ts  3.09 kB │ gzip: 0.97 kB
47
- ℹ dist/client/client.svelte.d.ts  2.83 kB │ gzip: 0.83 kB
55
+ ℹ dist/client/solid.d.ts  3.09 kB │ gzip: 0.98 kB
56
+ ℹ dist/client/client.svelte.d.ts  2.83 kB │ gzip: 0.84 kB
48
57
  ℹ dist/client/vue.d.ts  2.76 kB │ gzip: 0.93 kB
49
- ℹ dist/client/client.d.ts  1.39 kB │ gzip: 0.47 kB
58
+ ℹ dist/client/client.d.ts  1.39 kB │ gzip: 0.48 kB
50
59
  ℹ dist/mod.d.ts  0.81 kB │ gzip: 0.31 kB
51
60
  ℹ dist/integrations/react-ssr.d.ts  0.78 kB │ gzip: 0.38 kB
52
- ℹ dist/api/fragment-instantiation.d.ts  0.49 kB │ gzip: 0.20 kB
61
+ ℹ dist/api/fragment-instantiation.d.ts  0.49 kB │ gzip: 0.21 kB
53
62
  ℹ dist/api/api.d.ts  0.31 kB │ gzip: 0.18 kB
54
63
  ℹ dist/api/fragment-builder.d.ts  0.21 kB │ gzip: 0.14 kB
55
- ℹ dist/fragment-builder-B3JXWiZB.d.ts 23.46 kB │ gzip: 4.94 kB
56
- ℹ dist/api-jKNXmz2B.d.ts 14.67 kB │ gzip: 4.14 kB
57
- ℹ 50 files, total: 353.96 kB
58
- ✔ Build complete in 7242ms
64
+ ℹ dist/fragment-builder-BZr2JkuW.d.ts 23.32 kB │ gzip: 4.92 kB
65
+ ℹ dist/api-BX90b4-D.d.ts 14.69 kB │ gzip: 4.14 kB
66
+ ℹ 56 files, total: 379.10 kB
67
+ ✔ Build complete in 3723ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @fragno-dev/core
2
2
 
3
+ ## 0.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - ca57fac: feat: allow async middleware
8
+
9
+ ## 0.1.3
10
+
11
+ ### Patch Changes
12
+
13
+ - bef9f6c: feat(testing): add `createFragmentForTest` test helper to easily test API routes defined
14
+ in Fragments
15
+ - 711226d: feat(testing): add `createDatabaseFragmentForTest` in new test package that automatically
16
+ sets up a Fragment's database and makes it ready for testing
17
+
3
18
  ## 0.1.2
4
19
 
5
20
  ### Patch Changes
package/LICENSE.md ADDED
@@ -0,0 +1,16 @@
1
+ Copyright 2025 - present "ReJot Nederland B.V.", and individual contributors.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
4
+ associated documentation files (the “Software”), to deal in the Software without restriction,
5
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
6
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
7
+ furnished to do so, subject to the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be included in all copies or substantial
10
+ portions of the Software.
11
+
12
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
13
+ NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
15
+ OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
16
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/dist/api/api.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as addRoute, i as ValidPath, n as HTTPMethod, o as FragnoApiError, r as NonGetHTTPMethod, s as FragnoApiValidationError, t as FragnoRouteConfig } from "../api-jKNXmz2B.js";
1
+ import { a as addRoute, i as ValidPath, n as HTTPMethod, o as FragnoApiError, r as NonGetHTTPMethod, s as FragnoApiValidationError, t as FragnoRouteConfig } from "../api-BX90b4-D.js";
2
2
  export { FragnoApiError, FragnoApiValidationError, FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, ValidPath, addRoute };
@@ -1,3 +1,3 @@
1
- import "../api-jKNXmz2B.js";
2
- import { n as FragmentDefinition, r as defineFragment, t as FragmentBuilder } from "../fragment-builder-B3JXWiZB.js";
1
+ import "../api-BX90b4-D.js";
2
+ import { n as FragmentDefinition, r as defineFragment, t as FragmentBuilder } from "../fragment-builder-BZr2JkuW.js";
3
3
  export { FragmentBuilder, FragmentDefinition, defineFragment };
@@ -1,3 +1,3 @@
1
- import "../api-jKNXmz2B.js";
2
- import { a as FragnoFragmentSharedConfig, c as FragnoPublicConfig, i as AnyFragnoFragmentSharedConfig, l as createFragment, o as FragnoInstantiatedFragment, s as FragnoPublicClientConfig, u as instantiatedFragmentFakeSymbol } from "../fragment-builder-B3JXWiZB.js";
1
+ import "../api-BX90b4-D.js";
2
+ import { a as FragnoFragmentSharedConfig, c as FragnoPublicConfig, i as AnyFragnoFragmentSharedConfig, l as createFragment, o as FragnoInstantiatedFragment, s as FragnoPublicClientConfig, u as instantiatedFragmentFakeSymbol } from "../fragment-builder-BZr2JkuW.js";
3
3
  export { AnyFragnoFragmentSharedConfig, FragnoFragmentSharedConfig, FragnoInstantiatedFragment, FragnoPublicClientConfig, FragnoPublicConfig, createFragment, instantiatedFragmentFakeSymbol };
@@ -1,5 +1,6 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- import { n as instantiatedFragmentFakeSymbol, t as createFragment } from "../fragment-instantiation-D1q7pltx.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.js";
4
+ import { n as instantiatedFragmentFakeSymbol, t as createFragment } from "../fragment-instantiation-D74OQjbn.js";
4
5
 
5
6
  export { createFragment, instantiatedFragmentFakeSymbol };
@@ -360,5 +360,5 @@ declare function addRoute<TMethod extends HTTPMethod, TPath extends string, TInp
360
360
  inputSchema: TInputSchema;
361
361
  }): FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
362
362
  //#endregion
363
- export { addRoute as a, OutputContext as c, MutableRequestState as d, ExtractPathParamsOrWiden as f, QueryParamsHint as h, ValidPath as i, InferOr as l, MaybeExtractPathParamsOrWiden as m, HTTPMethod as n, FragnoApiError as o, HasPathParams as p, NonGetHTTPMethod as r, FragnoApiValidationError as s, FragnoRouteConfig as t, StatusCode as u };
364
- //# sourceMappingURL=api-jKNXmz2B.d.ts.map
363
+ export { addRoute as a, OutputContext as c, MutableRequestState as d, ExtractPathParams as f, QueryParamsHint as g, MaybeExtractPathParamsOrWiden as h, ValidPath as i, InferOr as l, HasPathParams as m, HTTPMethod as n, FragnoApiError as o, ExtractPathParamsOrWiden as p, NonGetHTTPMethod as r, FragnoApiValidationError as s, FragnoRouteConfig as t, StatusCode as u };
364
+ //# sourceMappingURL=api-BX90b4-D.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-jKNXmz2B.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/api.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"api-BX90b4-D.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/api.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import "../api-jKNXmz2B.js";
2
- import { A as isGetHook, C as HasGetRoutes, D as buildUrl, E as ValidateGetRoutePath, F as FragnoClientFetchAbortError, I as FragnoClientFetchError, L as FragnoClientFetchNetworkError, M as isStore, N as FragnoClientApiError, O as createClientBuilder, P as FragnoClientError, R as FragnoClientUnknownApiError, S as FragnoStoreData, T as ObjectContainingStoreField, _ as ExtractOutputSchemaForPath, b as FragnoClientHookData, d as CacheLine, f as ClientBuilder, g as ExtractNonGetRoutePaths, h as ExtractGetRoutes, j as isMutatorHook, k as getCacheKey, m as ExtractGetRoutePaths, p as CreateHookOptions, v as ExtractRouteByPath, w as IsValidGetRoutePath, x as FragnoClientMutatorData, y as ExtractRoutePath, z as FragnoErrorOptions } from "../fragment-builder-B3JXWiZB.js";
1
+ import "../api-BX90b4-D.js";
2
+ import { A as isGetHook, C as HasGetRoutes, D as buildUrl, E as ValidateGetRoutePath, F as FragnoClientFetchAbortError, I as FragnoClientFetchError, L as FragnoClientFetchNetworkError, M as isStore, N as FragnoClientApiError, O as createClientBuilder, P as FragnoClientError, R as FragnoClientUnknownApiError, S as FragnoStoreData, T as ObjectContainingStoreField, _ as ExtractOutputSchemaForPath, b as FragnoClientHookData, d as CacheLine, f as ClientBuilder, g as ExtractNonGetRoutePaths, h as ExtractGetRoutes, j as isMutatorHook, k as getCacheKey, m as ExtractGetRoutePaths, p as CreateHookOptions, v as ExtractRouteByPath, w as IsValidGetRoutePath, x as FragnoClientMutatorData, y as ExtractRoutePath, z as FragnoErrorOptions } from "../fragment-builder-BZr2JkuW.js";
3
3
  export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, FragnoStoreData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
@@ -1,6 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- 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-CzWq6IlK.js";
4
- import "../ssr-CamRrMc0.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.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-C6LChM0Y.js";
5
+ import "../ssr-BByDVfFD.js";
5
6
 
6
7
  export { ClientBuilder, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
@@ -1,5 +1,5 @@
1
- import { h as QueryParamsHint, l as InferOr, m as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod } from "../api-jKNXmz2B.js";
2
- import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-B3JXWiZB.js";
1
+ import { g as QueryParamsHint, h as MaybeExtractPathParamsOrWiden, l as InferOr, r as NonGetHTTPMethod } from "../api-BX90b4-D.js";
2
+ import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-BZr2JkuW.js";
3
3
  import { ReadableAtom } from "nanostores";
4
4
  import { Readable } from "svelte/store";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,7 +1,8 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- import { a as isGetHook, o as isMutatorHook, s as isStore } from "../client-CzWq6IlK.js";
4
- import "../ssr-CamRrMc0.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.js";
4
+ import { a as isGetHook, o as isMutatorHook, s as isStore } from "../client-C6LChM0Y.js";
5
+ import "../ssr-BByDVfFD.js";
5
6
  import { atom } from "nanostores";
6
7
  import { get, writable } from "svelte/store";
7
8
  import { onDestroy } from "svelte";
@@ -1 +1 @@
1
- {"version":3,"file":"client.svelte.js","names":["pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>"],"sources":["../../src/client/client.svelte.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom } from \"nanostores\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n isStore,\n type FragnoClientHookData,\n type FragnoClientMutatorData,\n type FragnoStoreData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { InferOr } from \"../util/types-util\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\n\nimport { writable, type Readable, get } from \"svelte/store\";\nimport { onDestroy } from \"svelte\";\n\nexport type FragnoSvelteHook<\n _TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = (args?: {\n path?:\n | MaybeExtractPathParamsOrWiden<TPath, string | Readable<string> | ReadableAtom<string>>\n | (() => string);\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n}) => {\n data: Readable<InferOr<TOutputSchema, undefined>>;\n loading: Readable<boolean>;\n error: Readable<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoSvelteMutator<\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<\n TPath,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Readable<boolean | undefined>;\n error: Readable<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Readable<InferOr<TOutputSchema, undefined>>;\n};\n\nfunction isReadable(value: unknown): value is Readable<string> {\n return typeof value === \"object\" && value !== null && \"subscribe\" in value;\n}\n\nfunction isCallable(value: unknown): value is () => string {\n return typeof value === \"function\";\n}\n\nexport function readableToAtom<T>(value: Readable<T>): ReadableAtom<T> {\n const a = atom(get(value));\n\n value.subscribe((newVal) => {\n a.set(newVal);\n });\n\n return a;\n}\n\nexport function runeToAtom<T>(value: () => T): ReadableAtom<T> {\n const a = atom(value());\n\n $effect(() => {\n a.set(value());\n });\n\n return a;\n}\n\nfunction createSvelteHook<\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): FragnoSvelteHook<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 | Readable<string> | ReadableAtom<string> | (() => string);\n if (isCallable(v)) {\n pathParams[key] = runeToAtom(v);\n } else {\n pathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Readable<string> | ReadableAtom<string> | (() => string);\n if (isCallable(v)) {\n queryParams[key] = runeToAtom(v);\n } else {\n queryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const data = writable<InferOr<TOutputSchema, undefined>>(undefined);\n const loading = writable<boolean>(false);\n const error = writable<FragnoClientError<TErrorCode[number]> | undefined>(undefined);\n\n const unsubscribe = store.subscribe((updatedStoreValue) => {\n data.set(updatedStoreValue.data as InferOr<TOutputSchema, undefined>);\n loading.set(updatedStoreValue.loading);\n error.set(updatedStoreValue.error);\n });\n\n onDestroy(() => {\n unsubscribe();\n });\n\n return {\n data,\n loading,\n error,\n };\n };\n}\n\nfunction createSvelteMutator<\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): FragnoSvelteMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const data = writable<InferOr<TOutputSchema, undefined>>(undefined);\n const loading = writable<boolean | undefined>(undefined);\n const error = writable<FragnoClientError<TErrorCode[number]> | undefined>(undefined);\n\n // Subscribe to the mutator store and sync with our Svelte stores\n const unsubscribe = hook.mutatorStore.subscribe((storeValue) => {\n data.set(storeValue.data as InferOr<TOutputSchema, undefined>);\n loading.set(storeValue.loading);\n error.set(storeValue.error);\n });\n\n onDestroy(() => {\n unsubscribe();\n });\n\n // Create a wrapped mutate function that handles Svelte readable stores\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<\n TPath,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\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 | Readable<string> | ReadableAtom<string>;\n pathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Readable<string> | ReadableAtom<string>;\n queryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n\n // Call the store's mutate function with normalized params\n return hook.mutatorStore.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n return {\n mutate,\n loading,\n error,\n data,\n };\n };\n}\n\nexport function createSvelteStore<T extends object>(hook: FragnoStoreData<T>): T {\n // Since nanostores already implement Svelte's store contract,\n // we can return the store object directly for use with $ syntax\n return hook.obj;\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 ? FragnoSvelteHook<\"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 ? FragnoSvelteMutator<M, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? TStoreObj\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] = createSvelteHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createSvelteMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createSvelteStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.svelte.js","names":["pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>"],"sources":["../../src/client/client.svelte.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom } from \"nanostores\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n isStore,\n type FragnoClientHookData,\n type FragnoClientMutatorData,\n type FragnoStoreData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { InferOr } from \"../util/types-util\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\n\nimport { writable, type Readable, get } from \"svelte/store\";\nimport { onDestroy } from \"svelte\";\n\nexport type FragnoSvelteHook<\n _TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = (args?: {\n path?:\n | MaybeExtractPathParamsOrWiden<TPath, string | Readable<string> | ReadableAtom<string>>\n | (() => string);\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n}) => {\n data: Readable<InferOr<TOutputSchema, undefined>>;\n loading: Readable<boolean>;\n error: Readable<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoSvelteMutator<\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<\n TPath,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Readable<boolean | undefined>;\n error: Readable<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Readable<InferOr<TOutputSchema, undefined>>;\n};\n\nfunction isReadable(value: unknown): value is Readable<string> {\n return typeof value === \"object\" && value !== null && \"subscribe\" in value;\n}\n\nfunction isCallable(value: unknown): value is () => string {\n return typeof value === \"function\";\n}\n\nexport function readableToAtom<T>(value: Readable<T>): ReadableAtom<T> {\n const a = atom(get(value));\n\n value.subscribe((newVal) => {\n a.set(newVal);\n });\n\n return a;\n}\n\nexport function runeToAtom<T>(value: () => T): ReadableAtom<T> {\n const a = atom(value());\n\n $effect(() => {\n a.set(value());\n });\n\n return a;\n}\n\nfunction createSvelteHook<\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): FragnoSvelteHook<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 | Readable<string> | ReadableAtom<string> | (() => string);\n if (isCallable(v)) {\n pathParams[key] = runeToAtom(v);\n } else {\n pathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Readable<string> | ReadableAtom<string> | (() => string);\n if (isCallable(v)) {\n queryParams[key] = runeToAtom(v);\n } else {\n queryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const data = writable<InferOr<TOutputSchema, undefined>>(undefined);\n const loading = writable<boolean>(false);\n const error = writable<FragnoClientError<TErrorCode[number]> | undefined>(undefined);\n\n const unsubscribe = store.subscribe((updatedStoreValue) => {\n data.set(updatedStoreValue.data as InferOr<TOutputSchema, undefined>);\n loading.set(updatedStoreValue.loading);\n error.set(updatedStoreValue.error);\n });\n\n onDestroy(() => {\n unsubscribe();\n });\n\n return {\n data,\n loading,\n error,\n };\n };\n}\n\nfunction createSvelteMutator<\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): FragnoSvelteMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const data = writable<InferOr<TOutputSchema, undefined>>(undefined);\n const loading = writable<boolean | undefined>(undefined);\n const error = writable<FragnoClientError<TErrorCode[number]> | undefined>(undefined);\n\n // Subscribe to the mutator store and sync with our Svelte stores\n const unsubscribe = hook.mutatorStore.subscribe((storeValue) => {\n data.set(storeValue.data as InferOr<TOutputSchema, undefined>);\n loading.set(storeValue.loading);\n error.set(storeValue.error);\n });\n\n onDestroy(() => {\n unsubscribe();\n });\n\n // Create a wrapped mutate function that handles Svelte readable stores\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<\n TPath,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\n query?: QueryParamsHint<\n TQueryParameters,\n string | Readable<string> | ReadableAtom<string> | (() => string)\n >;\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 | Readable<string> | ReadableAtom<string>;\n pathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Readable<string> | ReadableAtom<string>;\n queryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n }\n\n // Call the store's mutate function with normalized params\n return hook.mutatorStore.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n return {\n mutate,\n loading,\n error,\n data,\n };\n };\n}\n\nexport function createSvelteStore<T extends object>(hook: FragnoStoreData<T>): T {\n // Since nanostores already implement Svelte's store contract,\n // we can return the store object directly for use with $ syntax\n return hook.obj;\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 ? FragnoSvelteHook<\"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 ? FragnoSvelteMutator<M, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? TStoreObj\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] = createSvelteHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createSvelteMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createSvelteStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;AA8DA,SAAS,WAAW,OAA2C;AAC7D,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,eAAe;;AAGvE,SAAS,WAAW,OAAuC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,eAAkB,OAAqC;CACrE,MAAM,IAAI,KAAK,IAAI,MAAM,CAAC;AAE1B,OAAM,WAAW,WAAW;AAC1B,IAAE,IAAI,OAAO;GACb;AAEF,QAAO;;AAGT,SAAgB,WAAc,OAAiC;CAC7D,MAAM,IAAI,KAAK,OAAO,CAAC;AAEvB,eAAc;AACZ,IAAE,IAAI,OAAO,CAAC;GACd;AAEF,QAAO;;AAGT,SAAS,iBAOP,MAC+E;AAC/E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAMA,aAA4D,EAAE;EACpE,MAAMC,cAA6D,EAAE;AAErE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;GACrD,MAAM,IAAI;AACV,OAAI,WAAW,EAAE,CACf,YAAW,OAAO,WAAW,EAAE;OAE/B,YAAW,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;AAI1D,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;GACtD,MAAM,IAAI;AACV,OAAI,WAAW,EAAE,CACf,aAAY,OAAO,WAAW,EAAE;OAEhC,aAAY,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;EAI3D,MAAM,QAAQ,KAAK,MAAM;GACvB,MAAM;GACN,OAAO;GACR,CAAC;EAEF,MAAM,OAAO,SAA4C,OAAU;EACnE,MAAM,UAAU,SAAkB,MAAM;EACxC,MAAM,QAAQ,SAA4D,OAAU;EAEpF,MAAM,cAAc,MAAM,WAAW,sBAAsB;AACzD,QAAK,IAAI,kBAAkB,KAA0C;AACrE,WAAQ,IAAI,kBAAkB,QAAQ;AACtC,SAAM,IAAI,kBAAkB,MAAM;IAClC;AAEF,kBAAgB;AACd,gBAAa;IACb;AAEF,SAAO;GACL;GACA;GACA;GACD;;;AAIL,SAAS,oBAQP,MAQgG;AAChG,cAAa;EACX,MAAM,OAAO,SAA4C,OAAU;EACnE,MAAM,UAAU,SAA8B,OAAU;EACxD,MAAM,QAAQ,SAA4D,OAAU;EAGpF,MAAM,cAAc,KAAK,aAAa,WAAW,eAAe;AAC9D,QAAK,IAAI,WAAW,KAA0C;AAC9D,WAAQ,IAAI,WAAW,QAAQ;AAC/B,SAAM,IAAI,WAAW,MAAM;IAC3B;AAEF,kBAAgB;AACd,gBAAa;IACb;EAGF,MAAM,SAAS,OAAO,SAUhB;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,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;AAGxD,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;IACtD,MAAM,IAAI;AACV,gBAAY,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;AAIzD,UAAO,KAAK,aAAa,OAAO;IAC9B;IACA,MAAM;IACN,OAAO;IACR,CAAC;;AAGJ,SAAO;GACL;GACA;GACA;GACA;GACD;;;AAIL,SAAgB,kBAAoC,MAA6B;AAG/E,QAAO,KAAK;;AAGd,SAAgB,UACd,WAsBA;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,iBAAiB,KAAK;WAC3B,cAAc,KAAK,CAC5B,QAAO,OAAO,oBAAoB,KAAK;WAC9B,QAAQ,KAAK,CACtB,QAAO,OAAO,kBAAkB,KAAK;MAGrC,QAAO,OAAO;;AAIlB,QAAO"}
@@ -1,5 +1,5 @@
1
- import { f as ExtractPathParamsOrWiden, h as QueryParamsHint, l as InferOr, m as MaybeExtractPathParamsOrWiden, p as HasPathParams, r as NonGetHTTPMethod } from "../api-jKNXmz2B.js";
2
- import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-B3JXWiZB.js";
1
+ import { g as QueryParamsHint, h as MaybeExtractPathParamsOrWiden, l as InferOr, m as HasPathParams, p as ExtractPathParamsOrWiden, r as NonGetHTTPMethod } from "../api-BX90b4-D.js";
2
+ import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-BZr2JkuW.js";
3
3
  import { ReadableAtom, Store, StoreValue } from "nanostores";
4
4
  import { FetcherValue } from "@nanostores/query";
5
5
  import * as react0 from "react";
@@ -1,7 +1,8 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-CzWq6IlK.js";
4
- import { o as hydrateFromWindow } from "../ssr-CamRrMc0.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.js";
4
+ import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-C6LChM0Y.js";
5
+ import { o as hydrateFromWindow } from "../ssr-BByDVfFD.js";
5
6
  import { listenKeys } from "nanostores";
6
7
  import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
7
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","names":["result: any"],"sources":["../../src/client/react.ts"],"sourcesContent":["import type { FetcherValue } from \"@nanostores/query\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { listenKeys, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport { useCallback, useMemo, useRef, useSyncExternalStore, type DependencyList } from \"react\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport type { FragnoClientMutatorData, FragnoClientHookData } from \"./client\";\nimport { isGetHook, isMutatorHook, isStore, type FragnoStoreData } from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport { hydrateFromWindow } from \"../util/ssr\";\nimport type { InferOr } from \"../util/types-util\";\nimport type {\n ExtractPathParamsOrWiden,\n HasPathParams,\n MaybeExtractPathParamsOrWiden,\n QueryParamsHint,\n} from \"../api/internal/path\";\nimport { isReadableAtom } from \"../util/nanostores\";\n\nexport type FragnoReactHook<\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 | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;\n}) => FetcherValue<\n StandardSchemaV1.InferOutput<TOutputSchema>,\n FragnoClientError<NonNullable<TErrorCode>>\n>;\n\nexport type FragnoReactMutator<\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: ({\n body,\n path,\n query,\n }: {\n body?: InferOr<TInputSchema, undefined>;\n path?: HasPathParams<TPath> extends true\n ? ExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>\n : undefined;\n query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading?: boolean | undefined;\n error?: FragnoClientError<NonNullable<TErrorCode>[number]> | undefined;\n data?: InferOr<TOutputSchema, undefined> | undefined;\n};\n\n// Helper function to create a React hook from a GET hook\nfunction createReactHook<\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): FragnoReactHook<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters> {\n return ({ path, query } = {}) => {\n const pathParamValues = path ? Object.values(path) : [];\n const queryParamValues = query ? Object.values(query) : [];\n\n const deps = [...pathParamValues, ...queryParamValues];\n\n const store = useMemo(() => hook.store({ path, query }), [hook, ...deps]);\n\n if (typeof window === \"undefined\") {\n // TODO(Wilco): Handle server-side rendering. In React we have to implement onShellReady\n // and onAllReady in renderToPipable stream.\n const serverSideData = store.get();\n return serverSideData;\n }\n\n return useStore(store);\n };\n}\n\n// Helper function to create a React mutator from a mutator hook\nfunction createReactMutator<\n TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInput extends StandardSchemaV1 | undefined,\n TOutput extends StandardSchemaV1 | undefined,\n TError extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientMutatorData<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>,\n): FragnoReactMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters> {\n return () => {\n const store = useMemo(() => hook.mutatorStore, [hook]);\n return useStore(store);\n };\n}\n\n/**\n * Type helper that unwraps any Store fields of the object into StoreValues\n */\nexport type FragnoReactStore<T extends object> = () => T extends Store<infer TStore>\n ? StoreValue<TStore>\n : {\n [K in keyof T]: T[K] extends Store ? StoreValue<T[K]> : T[K];\n };\n\nfunction createReactStore<const T extends object>(hook: FragnoStoreData<T>): FragnoReactStore<T> {\n if (isReadableAtom(hook.obj)) {\n return () => useStore(hook.obj as Store);\n }\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: any = {};\n\n for (const key in hook.obj) {\n if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) {\n continue;\n }\n\n const value = hook.obj[key];\n if (isReadableAtom(value)) {\n result[key] = useStore(value);\n } else {\n result[key] = value;\n }\n }\n\n return result;\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 ? FragnoReactHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer TMethod,\n infer TPath,\n infer TInput,\n infer TOutput,\n infer TError,\n infer TQueryParameters\n >\n ? FragnoReactMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? FragnoReactStore<TStoreObj>\n : T[K];\n} {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {} as any; // We need one any cast here due to TypeScript's limitations with mapped types\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] = createReactHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createReactMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createReactStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n\ntype StoreKeys<T> = T extends { setKey: (k: infer K, v: unknown) => unknown } ? K : never;\n\nexport interface UseStoreOptions<SomeStore> {\n /**\n * @default\n * ```ts\n * [store, options.keys]\n * ```\n */\n deps?: DependencyList;\n\n /**\n * Will re-render components only on specific key changes.\n */\n keys?: StoreKeys<SomeStore>[];\n}\n\nexport function useStore<SomeStore extends Store>(\n store: SomeStore,\n options: UseStoreOptions<SomeStore> = {},\n): StoreValue<SomeStore> {\n const snapshotRef = useRef<StoreValue<SomeStore>>(store.get());\n\n const { keys, deps = [store, keys] } = options;\n\n const subscribe = useCallback((onChange: () => void) => {\n const emitChange = (value: StoreValue<SomeStore>) => {\n if (snapshotRef.current === value) {\n return;\n }\n snapshotRef.current = value;\n onChange();\n };\n\n emitChange(store.value);\n if (keys?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return listenKeys(store as any, keys, emitChange);\n }\n return store.listen(emitChange);\n }, deps);\n\n const get = () => snapshotRef.current as StoreValue<SomeStore>;\n\n return useSyncExternalStore(subscribe, get, () => {\n // Server-side rendering\n return get();\n });\n}\n\nexport function FragnoHydrator({ children }: { children: React.ReactNode }) {\n // Ensure initial data is transferred from window before any hooks run\n // Running in useMemo makes this happen during render, ahead of effects\n useMemo(() => {\n hydrateFromWindow();\n }, []);\n return children;\n}\n"],"mappings":";;;;;;;;AAyDA,SAAS,gBAOP,MAC8E;AAC9E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAM,kBAAkB,OAAO,OAAO,OAAO,KAAK,GAAG,EAAE;EACvD,MAAM,mBAAmB,QAAQ,OAAO,OAAO,MAAM,GAAG,EAAE;EAI1D,MAAM,QAAQ,cAAc,KAAK,MAAM;GAAE;GAAM;GAAO,CAAC,EAAE,CAAC,MAAM,GAFnD,CAAC,GAAG,iBAAiB,GAAG,iBAAiB,CAEkB,CAAC;AAEzE,MAAI,OAAO,WAAW,YAIpB,QADuB,MAAM,KAAK;AAIpC,SAAO,SAAS,MAAM;;;AAK1B,SAAS,mBAQP,MAC+E;AAC/E,cAAa;AAEX,SAAO,SADO,cAAc,KAAK,cAAc,CAAC,KAAK,CAAC,CAChC;;;AAa1B,SAAS,iBAAyC,MAA+C;AAC/F,KAAI,eAAe,KAAK,IAAI,CAC1B,cAAa,SAAS,KAAK,IAAa;AAG1C,cAAa;EAEX,MAAMA,SAAc,EAAE;AAEtB,OAAK,MAAM,OAAO,KAAK,KAAK;AAC1B,OAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,IAAI,CACtD;GAGF,MAAM,QAAQ,KAAK,IAAI;AACvB,OAAI,eAAe,MAAM,CACvB,QAAO,OAAO,SAAS,MAAM;OAE7B,QAAO,OAAO;;AAIlB,SAAO;;;AAIX,SAAgB,UACd,WAsBA;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,gBAAgB,KAAK;WAC1B,cAAc,KAAK,CAC5B,QAAO,OAAO,mBAAmB,KAAK;WAC7B,QAAQ,KAAK,CACtB,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO;;AAoBT,SAAgB,SACd,OACA,UAAsC,EAAE,EACjB;CACvB,MAAM,cAAc,OAA8B,MAAM,KAAK,CAAC;CAE9D,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,KAAK,KAAK;CAEvC,MAAM,YAAY,aAAa,aAAyB;EACtD,MAAM,cAAc,UAAiC;AACnD,OAAI,YAAY,YAAY,MAC1B;AAEF,eAAY,UAAU;AACtB,aAAU;;AAGZ,aAAW,MAAM,MAAM;AACvB,MAAI,MAAM,OAER,QAAO,WAAW,OAAc,MAAM,WAAW;AAEnD,SAAO,MAAM,OAAO,WAAW;IAC9B,KAAK;CAER,MAAM,YAAY,YAAY;AAE9B,QAAO,qBAAqB,WAAW,WAAW;AAEhD,SAAO,KAAK;GACZ;;AAGJ,SAAgB,eAAe,EAAE,YAA2C;AAG1E,eAAc;AACZ,qBAAmB;IAClB,EAAE,CAAC;AACN,QAAO"}
1
+ {"version":3,"file":"react.js","names":["result: any"],"sources":["../../src/client/react.ts"],"sourcesContent":["import type { FetcherValue } from \"@nanostores/query\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { listenKeys, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport { useCallback, useMemo, useRef, useSyncExternalStore, type DependencyList } from \"react\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport type { FragnoClientMutatorData, FragnoClientHookData } from \"./client\";\nimport { isGetHook, isMutatorHook, isStore, type FragnoStoreData } from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport { hydrateFromWindow } from \"../util/ssr\";\nimport type { InferOr } from \"../util/types-util\";\nimport type {\n ExtractPathParamsOrWiden,\n HasPathParams,\n MaybeExtractPathParamsOrWiden,\n QueryParamsHint,\n} from \"../api/internal/path\";\nimport { isReadableAtom } from \"../util/nanostores\";\n\nexport type FragnoReactHook<\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 | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;\n}) => FetcherValue<\n StandardSchemaV1.InferOutput<TOutputSchema>,\n FragnoClientError<NonNullable<TErrorCode>>\n>;\n\nexport type FragnoReactMutator<\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: ({\n body,\n path,\n query,\n }: {\n body?: InferOr<TInputSchema, undefined>;\n path?: HasPathParams<TPath> extends true\n ? ExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>\n : undefined;\n query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading?: boolean | undefined;\n error?: FragnoClientError<NonNullable<TErrorCode>[number]> | undefined;\n data?: InferOr<TOutputSchema, undefined> | undefined;\n};\n\n// Helper function to create a React hook from a GET hook\nfunction createReactHook<\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): FragnoReactHook<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters> {\n return ({ path, query } = {}) => {\n const pathParamValues = path ? Object.values(path) : [];\n const queryParamValues = query ? Object.values(query) : [];\n\n const deps = [...pathParamValues, ...queryParamValues];\n\n const store = useMemo(() => hook.store({ path, query }), [hook, ...deps]);\n\n if (typeof window === \"undefined\") {\n // TODO(Wilco): Handle server-side rendering. In React we have to implement onShellReady\n // and onAllReady in renderToPipable stream.\n const serverSideData = store.get();\n return serverSideData;\n }\n\n return useStore(store);\n };\n}\n\n// Helper function to create a React mutator from a mutator hook\nfunction createReactMutator<\n TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInput extends StandardSchemaV1 | undefined,\n TOutput extends StandardSchemaV1 | undefined,\n TError extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientMutatorData<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>,\n): FragnoReactMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters> {\n return () => {\n const store = useMemo(() => hook.mutatorStore, [hook]);\n return useStore(store);\n };\n}\n\n/**\n * Type helper that unwraps any Store fields of the object into StoreValues\n */\nexport type FragnoReactStore<T extends object> = () => T extends Store<infer TStore>\n ? StoreValue<TStore>\n : {\n [K in keyof T]: T[K] extends Store ? StoreValue<T[K]> : T[K];\n };\n\nfunction createReactStore<const T extends object>(hook: FragnoStoreData<T>): FragnoReactStore<T> {\n if (isReadableAtom(hook.obj)) {\n return () => useStore(hook.obj as Store);\n }\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: any = {};\n\n for (const key in hook.obj) {\n if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) {\n continue;\n }\n\n const value = hook.obj[key];\n if (isReadableAtom(value)) {\n result[key] = useStore(value);\n } else {\n result[key] = value;\n }\n }\n\n return result;\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 ? FragnoReactHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer TMethod,\n infer TPath,\n infer TInput,\n infer TOutput,\n infer TError,\n infer TQueryParameters\n >\n ? FragnoReactMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? FragnoReactStore<TStoreObj>\n : T[K];\n} {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {} as any; // We need one any cast here due to TypeScript's limitations with mapped types\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] = createReactHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createReactMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createReactStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n\ntype StoreKeys<T> = T extends { setKey: (k: infer K, v: unknown) => unknown } ? K : never;\n\nexport interface UseStoreOptions<SomeStore> {\n /**\n * @default\n * ```ts\n * [store, options.keys]\n * ```\n */\n deps?: DependencyList;\n\n /**\n * Will re-render components only on specific key changes.\n */\n keys?: StoreKeys<SomeStore>[];\n}\n\nexport function useStore<SomeStore extends Store>(\n store: SomeStore,\n options: UseStoreOptions<SomeStore> = {},\n): StoreValue<SomeStore> {\n const snapshotRef = useRef<StoreValue<SomeStore>>(store.get());\n\n const { keys, deps = [store, keys] } = options;\n\n const subscribe = useCallback((onChange: () => void) => {\n const emitChange = (value: StoreValue<SomeStore>) => {\n if (snapshotRef.current === value) {\n return;\n }\n snapshotRef.current = value;\n onChange();\n };\n\n emitChange(store.value);\n if (keys?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return listenKeys(store as any, keys, emitChange);\n }\n return store.listen(emitChange);\n }, deps);\n\n const get = () => snapshotRef.current as StoreValue<SomeStore>;\n\n return useSyncExternalStore(subscribe, get, () => {\n // Server-side rendering\n return get();\n });\n}\n\nexport function FragnoHydrator({ children }: { children: React.ReactNode }) {\n // Ensure initial data is transferred from window before any hooks run\n // Running in useMemo makes this happen during render, ahead of effects\n useMemo(() => {\n hydrateFromWindow();\n }, []);\n return children;\n}\n"],"mappings":";;;;;;;;;AAyDA,SAAS,gBAOP,MAC8E;AAC9E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAM,kBAAkB,OAAO,OAAO,OAAO,KAAK,GAAG,EAAE;EACvD,MAAM,mBAAmB,QAAQ,OAAO,OAAO,MAAM,GAAG,EAAE;EAI1D,MAAM,QAAQ,cAAc,KAAK,MAAM;GAAE;GAAM;GAAO,CAAC,EAAE,CAAC,MAAM,GAFnD,CAAC,GAAG,iBAAiB,GAAG,iBAAiB,CAEkB,CAAC;AAEzE,MAAI,OAAO,WAAW,YAIpB,QADuB,MAAM,KAAK;AAIpC,SAAO,SAAS,MAAM;;;AAK1B,SAAS,mBAQP,MAC+E;AAC/E,cAAa;AAEX,SAAO,SADO,cAAc,KAAK,cAAc,CAAC,KAAK,CAAC,CAChC;;;AAa1B,SAAS,iBAAyC,MAA+C;AAC/F,KAAI,eAAe,KAAK,IAAI,CAC1B,cAAa,SAAS,KAAK,IAAa;AAG1C,cAAa;EAEX,MAAMA,SAAc,EAAE;AAEtB,OAAK,MAAM,OAAO,KAAK,KAAK;AAC1B,OAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,IAAI,CACtD;GAGF,MAAM,QAAQ,KAAK,IAAI;AACvB,OAAI,eAAe,MAAM,CACvB,QAAO,OAAO,SAAS,MAAM;OAE7B,QAAO,OAAO;;AAIlB,SAAO;;;AAIX,SAAgB,UACd,WAsBA;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,gBAAgB,KAAK;WAC1B,cAAc,KAAK,CAC5B,QAAO,OAAO,mBAAmB,KAAK;WAC7B,QAAQ,KAAK,CACtB,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO;;AAoBT,SAAgB,SACd,OACA,UAAsC,EAAE,EACjB;CACvB,MAAM,cAAc,OAA8B,MAAM,KAAK,CAAC;CAE9D,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,KAAK,KAAK;CAEvC,MAAM,YAAY,aAAa,aAAyB;EACtD,MAAM,cAAc,UAAiC;AACnD,OAAI,YAAY,YAAY,MAC1B;AAEF,eAAY,UAAU;AACtB,aAAU;;AAGZ,aAAW,MAAM,MAAM;AACvB,MAAI,MAAM,OAER,QAAO,WAAW,OAAc,MAAM,WAAW;AAEnD,SAAO,MAAM,OAAO,WAAW;IAC9B,KAAK;CAER,MAAM,YAAY,YAAY;AAE9B,QAAO,qBAAqB,WAAW,WAAW;AAEhD,SAAO,KAAK;GACZ;;AAGJ,SAAgB,eAAe,EAAE,YAA2C;AAG1E,eAAc;AACZ,qBAAmB;IAClB,EAAE,CAAC;AACN,QAAO"}
@@ -1,5 +1,5 @@
1
- import { h as QueryParamsHint, l as InferOr, m as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod } from "../api-jKNXmz2B.js";
2
- import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-B3JXWiZB.js";
1
+ import { g as QueryParamsHint, h as MaybeExtractPathParamsOrWiden, l as InferOr, r as NonGetHTTPMethod } from "../api-BX90b4-D.js";
2
+ import { P as FragnoClientError, S as FragnoStoreData, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-BZr2JkuW.js";
3
3
  import { ReadableAtom, Store, StoreValue } from "nanostores";
4
4
  import { Accessor } from "solid-js";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,7 +1,8 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-CzWq6IlK.js";
4
- import "../ssr-CamRrMc0.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.js";
4
+ import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-C6LChM0Y.js";
5
+ import "../ssr-BByDVfFD.js";
5
6
  import { atom } from "nanostores";
6
7
  import { useStore } from "@nanostores/solid";
7
8
  import { createEffect } from "solid-js";
@@ -1 +1 @@
1
- {"version":3,"file":"solid.js","names":["pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>","result: any"],"sources":["../../src/client/solid.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport { useStore } from \"@nanostores/solid\";\nimport type { Accessor } from \"solid-js\";\nimport { createEffect } from \"solid-js\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n isStore,\n type FragnoClientHookData,\n type FragnoClientMutatorData,\n type FragnoStoreData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { InferOr } from \"../util/types-util\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\nimport { isReadableAtom } from \"../util/nanostores\";\n\nexport type FragnoSolidHook<\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 | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;\n}) => {\n data: Accessor<InferOr<TOutputSchema, undefined>>;\n loading: Accessor<boolean>;\n error: Accessor<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoSolidMutator<\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 | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Accessor<boolean | undefined>;\n error: Accessor<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Accessor<InferOr<TOutputSchema, undefined>>;\n};\n\n/**\n * Type guard to check if a value is a SolidJS Accessor.\n *\n * @private\n */\nexport function isAccessor(value: unknown): value is Accessor<string> {\n return typeof value === \"function\";\n}\n\n/**\n * Converts a SolidJS Accessor to a NanoStore Atom.\n *\n * This is used to convert SolidJS accessors to atoms, so that we can use them in the store.\n *\n * @private\n */\nexport function accessorToAtom<T>(accessor: Accessor<T>): ReadableAtom<T> {\n const a = atom(accessor());\n\n createEffect(() => {\n a.set(accessor());\n });\n\n return a;\n}\n\n// Helper function to create a SolidJS signal 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 SolidJS accessors to atoms.\nfunction createSolidHook<\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): FragnoSolidHook<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 | Accessor<string> | ReadableAtom<string>;\n pathParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Accessor<string> | ReadableAtom<string>;\n queryParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const storeValue = useStore(store);\n\n return {\n data: () => storeValue().data as InferOr<TOutputSchema, undefined>,\n loading: () => storeValue().loading,\n error: () => storeValue().error,\n };\n };\n}\n\n// Helper function to create a SolidJS mutator from a mutator hook\nfunction createSolidMutator<\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): FragnoSolidMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const store = useStore(hook.mutatorStore);\n\n // Create a wrapped mutate function that handles SolidJS accessors\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<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 | Accessor<string> | ReadableAtom<string>;\n // For mutations, we read the current value of the accessor\n pathParams[key] = isAccessor(v) ? v() : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Accessor<string> | ReadableAtom<string>;\n // For mutations, we read the current value of the accessor\n queryParams[key] = isAccessor(v) ? v() : v;\n }\n\n // Call the store's mutate function with normalized params\n return hook.mutatorStore.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n return {\n mutate,\n data: () => store().data as InferOr<TOutputSchema, undefined>,\n loading: () => store().loading,\n error: () => store().error,\n };\n };\n}\n\nexport type FragnoSolidStore<T extends object> = T extends Store\n ? Accessor<StoreValue<T>>\n : () => {\n [K in keyof T]: T[K] extends Store ? Accessor<StoreValue<T[K]>> : T[K];\n };\n\nfunction createSolidStore<const T extends object>(\n hook: FragnoStoreData<T>,\n): Accessor<StoreValue<T>> | (() => Accessor<StoreValue<T>>) {\n // If the store object itself is a single atom, wrap it with useStore\n if (isReadableAtom(hook.obj)) {\n return useStore(hook.obj);\n }\n\n // For objects containing atoms, wrap each atom property with useStore\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: any = {};\n\n for (const key in hook.obj) {\n if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) {\n continue;\n }\n\n const value = hook.obj[key];\n if (isReadableAtom(value)) {\n result[key] = useStore(value);\n } else {\n result[key] = value;\n }\n }\n\n return () => result;\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 ? FragnoSolidHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer TMethod,\n infer TPath,\n infer TInput,\n infer TOutput,\n infer TError,\n infer TQueryParameters\n >\n ? FragnoSolidMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? FragnoSolidStore<TStoreObj>\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] = createSolidHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createSolidMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createSolidStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;AAyDA,SAAgB,WAAW,OAA2C;AACpE,QAAO,OAAO,UAAU;;;;;;;;;AAU1B,SAAgB,eAAkB,UAAwC;CACxE,MAAM,IAAI,KAAK,UAAU,CAAC;AAE1B,oBAAmB;AACjB,IAAE,IAAI,UAAU,CAAC;GACjB;AAEF,QAAO;;AAMT,SAAS,gBAOP,MAC8E;AAC9E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAMA,aAA4D,EAAE;EACpE,MAAMC,cAA6D,EAAE;AAErE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;GACrD,MAAM,IAAI;AACV,cAAW,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;AAGxD,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;GACtD,MAAM,IAAI;AACV,eAAY,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;EAQzD,MAAM,aAAa,SALL,KAAK,MAAM;GACvB,MAAM;GACN,OAAO;GACR,CAAC,CAEgC;AAElC,SAAO;GACL,YAAY,YAAY,CAAC;GACzB,eAAe,YAAY,CAAC;GAC5B,aAAa,YAAY,CAAC;GAC3B;;;AAKL,SAAS,mBAQP,MAQ+F;AAC/F,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;AAEV,eAAW,OAAO,WAAW,EAAE,GAAG,GAAG,GAAG;;AAG1C,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;IACtD,MAAM,IAAI;AAEV,gBAAY,OAAO,WAAW,EAAE,GAAG,GAAG,GAAG;;AAI3C,UAAO,KAAK,aAAa,OAAO;IAC9B;IACA,MAAM;IACN,OAAO;IACR,CAAC;;AAGJ,SAAO;GACL;GACA,YAAY,OAAO,CAAC;GACpB,eAAe,OAAO,CAAC;GACvB,aAAa,OAAO,CAAC;GACtB;;;AAUL,SAAS,iBACP,MAC2D;AAE3D,KAAI,eAAe,KAAK,IAAI,CAC1B,QAAO,SAAS,KAAK,IAAI;CAK3B,MAAMC,SAAc,EAAE;AAEtB,MAAK,MAAM,OAAO,KAAK,KAAK;AAC1B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,IAAI,CACtD;EAGF,MAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,eAAe,MAAM,CACvB,QAAO,OAAO,SAAS,MAAM;MAE7B,QAAO,OAAO;;AAIlB,cAAa;;AAGf,SAAgB,UACd,WAsBA;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,gBAAgB,KAAK;WAC1B,cAAc,KAAK,CAC5B,QAAO,OAAO,mBAAmB,KAAK;WAC7B,QAAQ,KAAK,CACtB,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO"}
1
+ {"version":3,"file":"solid.js","names":["pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>","result: any"],"sources":["../../src/client/solid.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport { useStore } from \"@nanostores/solid\";\nimport type { Accessor } from \"solid-js\";\nimport { createEffect } from \"solid-js\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n isStore,\n type FragnoClientHookData,\n type FragnoClientMutatorData,\n type FragnoStoreData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { InferOr } from \"../util/types-util\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\nimport { isReadableAtom } from \"../util/nanostores\";\n\nexport type FragnoSolidHook<\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 | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;\n}) => {\n data: Accessor<InferOr<TOutputSchema, undefined>>;\n loading: Accessor<boolean>;\n error: Accessor<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoSolidMutator<\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 | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Accessor<boolean | undefined>;\n error: Accessor<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Accessor<InferOr<TOutputSchema, undefined>>;\n};\n\n/**\n * Type guard to check if a value is a SolidJS Accessor.\n *\n * @private\n */\nexport function isAccessor(value: unknown): value is Accessor<string> {\n return typeof value === \"function\";\n}\n\n/**\n * Converts a SolidJS Accessor to a NanoStore Atom.\n *\n * This is used to convert SolidJS accessors to atoms, so that we can use them in the store.\n *\n * @private\n */\nexport function accessorToAtom<T>(accessor: Accessor<T>): ReadableAtom<T> {\n const a = atom(accessor());\n\n createEffect(() => {\n a.set(accessor());\n });\n\n return a;\n}\n\n// Helper function to create a SolidJS signal 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 SolidJS accessors to atoms.\nfunction createSolidHook<\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): FragnoSolidHook<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 | Accessor<string> | ReadableAtom<string>;\n pathParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Accessor<string> | ReadableAtom<string>;\n queryParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const storeValue = useStore(store);\n\n return {\n data: () => storeValue().data as InferOr<TOutputSchema, undefined>,\n loading: () => storeValue().loading,\n error: () => storeValue().error,\n };\n };\n}\n\n// Helper function to create a SolidJS mutator from a mutator hook\nfunction createSolidMutator<\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): FragnoSolidMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const store = useStore(hook.mutatorStore);\n\n // Create a wrapped mutate function that handles SolidJS accessors\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Accessor<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Accessor<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 | Accessor<string> | ReadableAtom<string>;\n // For mutations, we read the current value of the accessor\n pathParams[key] = isAccessor(v) ? v() : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Accessor<string> | ReadableAtom<string>;\n // For mutations, we read the current value of the accessor\n queryParams[key] = isAccessor(v) ? v() : v;\n }\n\n // Call the store's mutate function with normalized params\n return hook.mutatorStore.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n return {\n mutate,\n data: () => store().data as InferOr<TOutputSchema, undefined>,\n loading: () => store().loading,\n error: () => store().error,\n };\n };\n}\n\nexport type FragnoSolidStore<T extends object> = T extends Store\n ? Accessor<StoreValue<T>>\n : () => {\n [K in keyof T]: T[K] extends Store ? Accessor<StoreValue<T[K]>> : T[K];\n };\n\nfunction createSolidStore<const T extends object>(\n hook: FragnoStoreData<T>,\n): Accessor<StoreValue<T>> | (() => Accessor<StoreValue<T>>) {\n // If the store object itself is a single atom, wrap it with useStore\n if (isReadableAtom(hook.obj)) {\n return useStore(hook.obj);\n }\n\n // For objects containing atoms, wrap each atom property with useStore\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: any = {};\n\n for (const key in hook.obj) {\n if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) {\n continue;\n }\n\n const value = hook.obj[key];\n if (isReadableAtom(value)) {\n result[key] = useStore(value);\n } else {\n result[key] = value;\n }\n }\n\n return () => result;\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 ? FragnoSolidHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer TMethod,\n infer TPath,\n infer TInput,\n infer TOutput,\n infer TError,\n infer TQueryParameters\n >\n ? FragnoSolidMutator<TMethod, TPath, TInput, TOutput, TError, TQueryParameters>\n : T[K] extends FragnoStoreData<infer TStoreObj>\n ? FragnoSolidStore<TStoreObj>\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] = createSolidHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createSolidMutator(hook);\n } else if (isStore(hook)) {\n result[key] = createSolidStore(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyDA,SAAgB,WAAW,OAA2C;AACpE,QAAO,OAAO,UAAU;;;;;;;;;AAU1B,SAAgB,eAAkB,UAAwC;CACxE,MAAM,IAAI,KAAK,UAAU,CAAC;AAE1B,oBAAmB;AACjB,IAAE,IAAI,UAAU,CAAC;GACjB;AAEF,QAAO;;AAMT,SAAS,gBAOP,MAC8E;AAC9E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAMA,aAA4D,EAAE;EACpE,MAAMC,cAA6D,EAAE;AAErE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;GACrD,MAAM,IAAI;AACV,cAAW,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;AAGxD,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;GACtD,MAAM,IAAI;AACV,eAAY,OAAO,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG;;EAQzD,MAAM,aAAa,SALL,KAAK,MAAM;GACvB,MAAM;GACN,OAAO;GACR,CAAC,CAEgC;AAElC,SAAO;GACL,YAAY,YAAY,CAAC;GACzB,eAAe,YAAY,CAAC;GAC5B,aAAa,YAAY,CAAC;GAC3B;;;AAKL,SAAS,mBAQP,MAQ+F;AAC/F,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;AAEV,eAAW,OAAO,WAAW,EAAE,GAAG,GAAG,GAAG;;AAG1C,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;IACtD,MAAM,IAAI;AAEV,gBAAY,OAAO,WAAW,EAAE,GAAG,GAAG,GAAG;;AAI3C,UAAO,KAAK,aAAa,OAAO;IAC9B;IACA,MAAM;IACN,OAAO;IACR,CAAC;;AAGJ,SAAO;GACL;GACA,YAAY,OAAO,CAAC;GACpB,eAAe,OAAO,CAAC;GACvB,aAAa,OAAO,CAAC;GACtB;;;AAUL,SAAS,iBACP,MAC2D;AAE3D,KAAI,eAAe,KAAK,IAAI,CAC1B,QAAO,SAAS,KAAK,IAAI;CAK3B,MAAMC,SAAc,EAAE;AAEtB,MAAK,MAAM,OAAO,KAAK,KAAK;AAC1B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,IAAI,CACtD;EAGF,MAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,eAAe,MAAM,CACvB,QAAO,OAAO,SAAS,MAAM;MAE7B,QAAO,OAAO;;AAIlB,cAAa;;AAGf,SAAgB,UACd,WAsBA;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,gBAAgB,KAAK;WAC1B,cAAc,KAAK,CAC5B,QAAO,OAAO,mBAAmB,KAAK;WAC7B,QAAQ,KAAK,CACtB,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO"}
@@ -1,5 +1,5 @@
1
- import { f as ExtractPathParamsOrWiden, l as InferOr, m as MaybeExtractPathParamsOrWiden, p as HasPathParams, r as NonGetHTTPMethod } from "../api-jKNXmz2B.js";
2
- import { P as FragnoClientError, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-B3JXWiZB.js";
1
+ import { h as MaybeExtractPathParamsOrWiden, l as InferOr, m as HasPathParams, p as ExtractPathParamsOrWiden, r as NonGetHTTPMethod } from "../api-BX90b4-D.js";
2
+ import { P as FragnoClientError, b as FragnoClientHookData, x as FragnoClientMutatorData } from "../fragment-builder-BZr2JkuW.js";
3
3
  import { ReadableAtom } from "nanostores";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
5
 
@@ -1,7 +1,8 @@
1
1
  import "../api-DngJDcmO.js";
2
- import "../route-DbBZ3Ep9.js";
3
- import { a as isGetHook, o as isMutatorHook } from "../client-CzWq6IlK.js";
4
- import "../ssr-CamRrMc0.js";
2
+ import "../route-CTxjMtGZ.js";
3
+ import "../route-D1MZR6JL.js";
4
+ import { a as isGetHook, o as isMutatorHook } from "../client-C6LChM0Y.js";
5
+ import "../ssr-BByDVfFD.js";
5
6
 
6
7
  //#region src/util/async.ts
7
8
  /**