@fragno-dev/core 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.turbo/turbo-build.log +72 -62
  2. package/CHANGELOG.md +28 -0
  3. package/dist/api/api.d.ts +3 -2
  4. package/dist/api/api.d.ts.map +1 -1
  5. package/dist/api/api.js +2 -1
  6. package/dist/api/api.js.map +1 -1
  7. package/dist/api/bind-services.d.ts +0 -1
  8. package/dist/api/bind-services.d.ts.map +1 -1
  9. package/dist/api/bind-services.js.map +1 -1
  10. package/dist/api/error.d.ts.map +1 -1
  11. package/dist/api/error.js.map +1 -1
  12. package/dist/api/fragment-definition-builder.d.ts +26 -44
  13. package/dist/api/fragment-definition-builder.d.ts.map +1 -1
  14. package/dist/api/fragment-definition-builder.js +15 -22
  15. package/dist/api/fragment-definition-builder.js.map +1 -1
  16. package/dist/api/fragment-instantiator.d.ts +51 -37
  17. package/dist/api/fragment-instantiator.d.ts.map +1 -1
  18. package/dist/api/fragment-instantiator.js +74 -69
  19. package/dist/api/fragment-instantiator.js.map +1 -1
  20. package/dist/api/request-context-storage.d.ts +4 -0
  21. package/dist/api/request-context-storage.d.ts.map +1 -1
  22. package/dist/api/request-context-storage.js +6 -0
  23. package/dist/api/request-context-storage.js.map +1 -1
  24. package/dist/api/request-input-context.d.ts.map +1 -1
  25. package/dist/api/request-input-context.js.map +1 -1
  26. package/dist/api/request-middleware.d.ts +1 -1
  27. package/dist/api/request-middleware.d.ts.map +1 -1
  28. package/dist/api/request-middleware.js.map +1 -1
  29. package/dist/api/request-output-context.d.ts +1 -1
  30. package/dist/api/request-output-context.d.ts.map +1 -1
  31. package/dist/api/request-output-context.js.map +1 -1
  32. package/dist/api/route-caller.d.ts +30 -0
  33. package/dist/api/route-caller.d.ts.map +1 -0
  34. package/dist/api/route-caller.js +63 -0
  35. package/dist/api/route-caller.js.map +1 -0
  36. package/dist/api/route-handler-input-options.d.ts.map +1 -1
  37. package/dist/api/route.d.ts +1 -1
  38. package/dist/api/route.d.ts.map +1 -1
  39. package/dist/api/route.js.map +1 -1
  40. package/dist/api/shared-types.d.ts.map +1 -1
  41. package/dist/client/client-error.d.ts.map +1 -1
  42. package/dist/client/client-error.js.map +1 -1
  43. package/dist/client/client.d.ts +91 -52
  44. package/dist/client/client.d.ts.map +1 -1
  45. package/dist/client/client.js +25 -9
  46. package/dist/client/client.js.map +1 -1
  47. package/dist/client/client.svelte.d.ts +6 -5
  48. package/dist/client/client.svelte.d.ts.map +1 -1
  49. package/dist/client/client.svelte.js +10 -2
  50. package/dist/client/client.svelte.js.map +1 -1
  51. package/dist/client/internal/ndjson-streaming.js.map +1 -1
  52. package/dist/client/react.d.ts +5 -4
  53. package/dist/client/react.d.ts.map +1 -1
  54. package/dist/client/react.js +104 -12
  55. package/dist/client/react.js.map +1 -1
  56. package/dist/client/solid.d.ts +7 -5
  57. package/dist/client/solid.d.ts.map +1 -1
  58. package/dist/client/solid.js +23 -9
  59. package/dist/client/solid.js.map +1 -1
  60. package/dist/client/vanilla.d.ts +16 -4
  61. package/dist/client/vanilla.d.ts.map +1 -1
  62. package/dist/client/vanilla.js +21 -1
  63. package/dist/client/vanilla.js.map +1 -1
  64. package/dist/client/vue.d.ts +7 -5
  65. package/dist/client/vue.d.ts.map +1 -1
  66. package/dist/client/vue.js +18 -10
  67. package/dist/client/vue.js.map +1 -1
  68. package/dist/id.d.ts +2 -0
  69. package/dist/id.js +3 -0
  70. package/dist/internal/cuid.d.ts +16 -0
  71. package/dist/internal/cuid.d.ts.map +1 -0
  72. package/dist/internal/cuid.js +82 -0
  73. package/dist/internal/cuid.js.map +1 -0
  74. package/dist/mod-client.d.ts +5 -4
  75. package/dist/mod-client.d.ts.map +1 -1
  76. package/dist/mod-client.js +7 -5
  77. package/dist/mod-client.js.map +1 -1
  78. package/dist/mod.d.ts +6 -5
  79. package/dist/mod.js +2 -1
  80. package/dist/runtime.js +1 -1
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/test/test.d.ts +6 -6
  83. package/dist/test/test.d.ts.map +1 -1
  84. package/dist/test/test.js.map +1 -1
  85. package/dist/util/ssr.js.map +1 -1
  86. package/package.json +24 -40
  87. package/src/api/api.test.ts +3 -1
  88. package/src/api/api.ts +6 -0
  89. package/src/api/bind-services.ts +0 -5
  90. package/src/api/error.ts +1 -0
  91. package/src/api/fragment-definition-builder.extend.test.ts +2 -1
  92. package/src/api/fragment-definition-builder.test.ts +2 -1
  93. package/src/api/fragment-definition-builder.ts +49 -124
  94. package/src/api/fragment-instantiator.test.ts +92 -233
  95. package/src/api/fragment-instantiator.ts +228 -196
  96. package/src/api/fragment-services.test.ts +1 -0
  97. package/src/api/internal/path-runtime.test.ts +1 -0
  98. package/src/api/internal/path-type.test.ts +3 -1
  99. package/src/api/internal/route.test.ts +1 -0
  100. package/src/api/request-context-storage.ts +7 -0
  101. package/src/api/request-input-context.test.ts +4 -2
  102. package/src/api/request-input-context.ts +2 -1
  103. package/src/api/request-middleware.test.ts +9 -14
  104. package/src/api/request-middleware.ts +3 -2
  105. package/src/api/request-output-context.test.ts +3 -1
  106. package/src/api/request-output-context.ts +2 -1
  107. package/src/api/route-caller.test.ts +195 -0
  108. package/src/api/route-caller.ts +167 -0
  109. package/src/api/route-handler-input-options.ts +2 -1
  110. package/src/api/route.test.ts +4 -2
  111. package/src/api/route.ts +2 -1
  112. package/src/api/shared-types.ts +2 -1
  113. package/src/client/client-builder.test.ts +4 -2
  114. package/src/client/client-error.test.ts +2 -1
  115. package/src/client/client-error.ts +1 -1
  116. package/src/client/client-types.test.ts +19 -5
  117. package/src/client/client.ssr.test.ts +6 -4
  118. package/src/client/client.svelte.test.ts +18 -9
  119. package/src/client/client.svelte.ts +38 -13
  120. package/src/client/client.test.ts +49 -10
  121. package/src/client/client.ts +291 -141
  122. package/src/client/internal/ndjson-streaming.test.ts +6 -3
  123. package/src/client/internal/ndjson-streaming.ts +1 -0
  124. package/src/client/react.test.ts +176 -6
  125. package/src/client/react.ts +226 -31
  126. package/src/client/solid.test.ts +29 -5
  127. package/src/client/solid.ts +60 -22
  128. package/src/client/vanilla.test.ts +148 -6
  129. package/src/client/vanilla.ts +63 -9
  130. package/src/client/vue.test.ts +223 -84
  131. package/src/client/vue.ts +57 -30
  132. package/src/id.ts +1 -0
  133. package/src/internal/cuid.test.ts +164 -0
  134. package/src/internal/cuid.ts +133 -0
  135. package/src/mod-client.ts +4 -2
  136. package/src/mod.ts +3 -2
  137. package/src/runtime.ts +1 -1
  138. package/src/test/test.test.ts +4 -2
  139. package/src/test/test.ts +7 -9
  140. package/src/util/async.test.ts +1 -0
  141. package/src/util/content-type.test.ts +1 -0
  142. package/src/util/nanostores.test.ts +3 -1
  143. package/src/util/ssr.ts +1 -0
  144. package/tsconfig.json +1 -1
  145. package/tsdown.config.ts +1 -0
  146. package/vitest.config.ts +2 -1
@@ -0,0 +1,63 @@
1
+ import { parseFragnoResponse } from "./fragno-response.js";
2
+ import { buildPath } from "./internal/path.js";
3
+
4
+ //#region src/api/route-caller.ts
5
+ function isArrayBufferView(value) {
6
+ return ArrayBuffer.isView(value) && value.buffer instanceof ArrayBuffer;
7
+ }
8
+ function buildMountedPath(mountRoute, pathname) {
9
+ const normalizedMount = mountRoute === "/" ? "" : mountRoute.endsWith("/") ? mountRoute.slice(0, -1) : mountRoute;
10
+ const pathPart = pathname.startsWith("/") ? pathname : `/${pathname}`;
11
+ if (!normalizedMount) return pathPart;
12
+ return `${normalizedMount.startsWith("/") ? normalizedMount : `/${normalizedMount}`}${pathPart}`;
13
+ }
14
+ function createRouteCaller(config) {
15
+ const { baseUrl, fetch } = config;
16
+ const mountRoute = config.mountRoute ?? "";
17
+ const baseHeaders = config.baseHeaders ? new Headers(config.baseHeaders) : void 0;
18
+ const redirect = config.redirect ?? "manual";
19
+ const callRoute = async (method, path, inputOptions) => {
20
+ const headers = baseHeaders ? new Headers(baseHeaders) : new Headers();
21
+ const explicitHeaders = inputOptions?.headers ? inputOptions.headers instanceof Headers ? inputOptions.headers : new Headers(inputOptions.headers) : null;
22
+ if (explicitHeaders) for (const [key, value] of explicitHeaders.entries()) headers.set(key, value);
23
+ const hasExplicitContentType = explicitHeaders?.has("content-type") ?? false;
24
+ const searchParams = inputOptions?.query instanceof URLSearchParams ? new URLSearchParams(inputOptions.query) : new URLSearchParams();
25
+ if (inputOptions?.query && !(inputOptions.query instanceof URLSearchParams)) {
26
+ for (const [key, value] of Object.entries(inputOptions.query)) if (value !== void 0) searchParams.set(key, value);
27
+ }
28
+ const pathname = buildPath(path, inputOptions?.pathParams ?? {});
29
+ const url = new URL(buildMountedPath(mountRoute, pathname), baseUrl);
30
+ url.search = searchParams.toString();
31
+ let body;
32
+ if (inputOptions && "body" in inputOptions) {
33
+ const rawBody = inputOptions.body;
34
+ if (rawBody instanceof FormData || rawBody instanceof Blob) {
35
+ body = rawBody;
36
+ if (!hasExplicitContentType) headers.delete("content-type");
37
+ } else if (rawBody instanceof ReadableStream) {
38
+ body = rawBody;
39
+ if (!hasExplicitContentType) headers.delete("content-type");
40
+ } else if (rawBody instanceof ArrayBuffer) {
41
+ body = rawBody;
42
+ if (!hasExplicitContentType) headers.delete("content-type");
43
+ } else if (isArrayBufferView(rawBody)) {
44
+ body = rawBody;
45
+ if (!hasExplicitContentType) headers.delete("content-type");
46
+ } else if (rawBody !== void 0) {
47
+ body = JSON.stringify(rawBody);
48
+ if (!hasExplicitContentType) headers.set("content-type", "application/json");
49
+ }
50
+ }
51
+ return parseFragnoResponse(await fetch(new Request(url, {
52
+ method,
53
+ headers,
54
+ body,
55
+ redirect
56
+ })));
57
+ };
58
+ return callRoute;
59
+ }
60
+
61
+ //#endregion
62
+ export { createRouteCaller };
63
+ //# sourceMappingURL=route-caller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-caller.js","names":["body: BodyInit | undefined"],"sources":["../../src/api/route-caller.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\nimport type { ExtractRouteByPath, ExtractRoutePath } from \"../client/client\";\nimport type { InferOrUnknown } from \"../util/types-util\";\nimport type { HTTPMethod } from \"./api\";\nimport type { FragnoResponse } from \"./fragno-response\";\nimport { parseFragnoResponse } from \"./fragno-response\";\nimport { buildPath, type ExtractPathParams } from \"./internal/path\";\nimport type { AnyFragnoRouteConfig } from \"./route\";\nimport type { RouteHandlerInputOptions } from \"./route-handler-input-options\";\n\nexport type RouteCallerConfig = {\n baseUrl: string | URL;\n mountRoute?: string;\n baseHeaders?: HeadersInit;\n fetch: (request: Request) => Promise<Response>;\n redirect?: RequestRedirect;\n};\n\ntype ArrayBufferViewOfArrayBuffer = ArrayBufferView & { buffer: ArrayBuffer };\n\ntype FragmentLike = {\n routes?: readonly AnyFragnoRouteConfig[];\n callRoute?: (...args: never[]) => Promise<unknown>;\n};\n\ntype RouteCallerPath<\n TRoutes extends readonly AnyFragnoRouteConfig[],\n TMethod extends HTTPMethod,\n> = [ExtractRoutePath<TRoutes, TMethod>] extends [never]\n ? string\n : ExtractRoutePath<TRoutes, TMethod>;\n\ntype RouteCallerMatch<\n TRoutes extends readonly AnyFragnoRouteConfig[],\n TMethod extends HTTPMethod,\n TPath extends string,\n> = [ExtractRouteByPath<TRoutes, TPath, TMethod>] extends [never]\n ? AnyFragnoRouteConfig\n : ExtractRouteByPath<TRoutes, TPath, TMethod>;\n\nexport type RouteCallerForFragment<TFragment extends FragmentLike> = TFragment extends {\n routes: infer TRoutes extends readonly AnyFragnoRouteConfig[];\n}\n ? <TMethod extends HTTPMethod, TPath extends RouteCallerPath<TRoutes, TMethod>>(\n method: TMethod,\n path: TPath,\n inputOptions?: RouteHandlerInputOptions<\n TPath,\n RouteCallerMatch<TRoutes, TMethod, TPath>[\"inputSchema\"]\n >,\n ) => Promise<\n FragnoResponse<\n InferOrUnknown<NonNullable<RouteCallerMatch<TRoutes, TMethod, TPath>[\"outputSchema\"]>>\n >\n >\n : TFragment extends { callRoute: (...args: never[]) => Promise<unknown> }\n ? TFragment[\"callRoute\"]\n : never;\n\nfunction isArrayBufferView(value: unknown): value is ArrayBufferViewOfArrayBuffer {\n return ArrayBuffer.isView(value) && value.buffer instanceof ArrayBuffer;\n}\n\nfunction buildMountedPath(mountRoute: string, pathname: string): string {\n const normalizedMount =\n mountRoute === \"/\" ? \"\" : mountRoute.endsWith(\"/\") ? mountRoute.slice(0, -1) : mountRoute;\n const pathPart = pathname.startsWith(\"/\") ? pathname : `/${pathname}`;\n if (!normalizedMount) {\n return pathPart;\n }\n const mountPart = normalizedMount.startsWith(\"/\") ? normalizedMount : `/${normalizedMount}`;\n return `${mountPart}${pathPart}`;\n}\n\nexport function createRouteCaller<TFragment extends FragmentLike>(\n config: RouteCallerConfig,\n): RouteCallerForFragment<TFragment> {\n const { baseUrl, fetch } = config;\n const mountRoute = config.mountRoute ?? \"\";\n const baseHeaders = config.baseHeaders ? new Headers(config.baseHeaders) : undefined;\n const redirect = config.redirect ?? \"manual\";\n\n const callRoute = async <TPath extends string>(\n method: HTTPMethod,\n path: TPath,\n inputOptions?: RouteHandlerInputOptions<TPath, StandardSchemaV1 | undefined>,\n ): Promise<FragnoResponse<unknown>> => {\n const headers = baseHeaders ? new Headers(baseHeaders) : new Headers();\n const explicitHeaders = inputOptions?.headers\n ? inputOptions.headers instanceof Headers\n ? inputOptions.headers\n : new Headers(inputOptions.headers)\n : null;\n\n if (explicitHeaders) {\n for (const [key, value] of explicitHeaders.entries()) {\n headers.set(key, value);\n }\n }\n\n const hasExplicitContentType = explicitHeaders?.has(\"content-type\") ?? false;\n\n const searchParams =\n inputOptions?.query instanceof URLSearchParams\n ? new URLSearchParams(inputOptions.query)\n : new URLSearchParams();\n\n if (inputOptions?.query && !(inputOptions.query instanceof URLSearchParams)) {\n for (const [key, value] of Object.entries(inputOptions.query)) {\n if (value !== undefined) {\n searchParams.set(key, value);\n }\n }\n }\n\n const pathParams = (inputOptions?.pathParams ?? {}) as ExtractPathParams<TPath>;\n const pathname = buildPath(path, pathParams);\n const url = new URL(buildMountedPath(mountRoute, pathname), baseUrl);\n url.search = searchParams.toString();\n\n let body: BodyInit | undefined;\n if (inputOptions && \"body\" in inputOptions) {\n const rawBody = (inputOptions as { body?: unknown }).body;\n\n if (rawBody instanceof FormData || rawBody instanceof Blob) {\n body = rawBody;\n if (!hasExplicitContentType) {\n headers.delete(\"content-type\");\n }\n } else if (rawBody instanceof ReadableStream) {\n body = rawBody;\n if (!hasExplicitContentType) {\n headers.delete(\"content-type\");\n }\n } else if (rawBody instanceof ArrayBuffer) {\n body = rawBody;\n if (!hasExplicitContentType) {\n headers.delete(\"content-type\");\n }\n } else if (isArrayBufferView(rawBody)) {\n body = rawBody;\n if (!hasExplicitContentType) {\n headers.delete(\"content-type\");\n }\n } else if (rawBody !== undefined) {\n body = JSON.stringify(rawBody);\n if (!hasExplicitContentType) {\n headers.set(\"content-type\", \"application/json\");\n }\n }\n }\n\n const response = await fetch(\n new Request(url, {\n method,\n headers,\n body,\n redirect,\n }),\n );\n\n return parseFragnoResponse(response);\n };\n\n return callRoute as RouteCallerForFragment<TFragment>;\n}\n"],"mappings":";;;;AA4DA,SAAS,kBAAkB,OAAuD;AAChF,QAAO,YAAY,OAAO,MAAM,IAAI,MAAM,kBAAkB;;AAG9D,SAAS,iBAAiB,YAAoB,UAA0B;CACtE,MAAM,kBACJ,eAAe,MAAM,KAAK,WAAW,SAAS,IAAI,GAAG,WAAW,MAAM,GAAG,GAAG,GAAG;CACjF,MAAM,WAAW,SAAS,WAAW,IAAI,GAAG,WAAW,IAAI;AAC3D,KAAI,CAAC,gBACH,QAAO;AAGT,QAAO,GADW,gBAAgB,WAAW,IAAI,GAAG,kBAAkB,IAAI,oBACpD;;AAGxB,SAAgB,kBACd,QACmC;CACnC,MAAM,EAAE,SAAS,UAAU;CAC3B,MAAM,aAAa,OAAO,cAAc;CACxC,MAAM,cAAc,OAAO,cAAc,IAAI,QAAQ,OAAO,YAAY,GAAG;CAC3E,MAAM,WAAW,OAAO,YAAY;CAEpC,MAAM,YAAY,OAChB,QACA,MACA,iBACqC;EACrC,MAAM,UAAU,cAAc,IAAI,QAAQ,YAAY,GAAG,IAAI,SAAS;EACtE,MAAM,kBAAkB,cAAc,UAClC,aAAa,mBAAmB,UAC9B,aAAa,UACb,IAAI,QAAQ,aAAa,QAAQ,GACnC;AAEJ,MAAI,gBACF,MAAK,MAAM,CAAC,KAAK,UAAU,gBAAgB,SAAS,CAClD,SAAQ,IAAI,KAAK,MAAM;EAI3B,MAAM,yBAAyB,iBAAiB,IAAI,eAAe,IAAI;EAEvE,MAAM,eACJ,cAAc,iBAAiB,kBAC3B,IAAI,gBAAgB,aAAa,MAAM,GACvC,IAAI,iBAAiB;AAE3B,MAAI,cAAc,SAAS,EAAE,aAAa,iBAAiB,kBACzD;QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,MAAM,CAC3D,KAAI,UAAU,OACZ,cAAa,IAAI,KAAK,MAAM;;EAMlC,MAAM,WAAW,UAAU,MADP,cAAc,cAAc,EAAE,CACN;EAC5C,MAAM,MAAM,IAAI,IAAI,iBAAiB,YAAY,SAAS,EAAE,QAAQ;AACpE,MAAI,SAAS,aAAa,UAAU;EAEpC,IAAIA;AACJ,MAAI,gBAAgB,UAAU,cAAc;GAC1C,MAAM,UAAW,aAAoC;AAErD,OAAI,mBAAmB,YAAY,mBAAmB,MAAM;AAC1D,WAAO;AACP,QAAI,CAAC,uBACH,SAAQ,OAAO,eAAe;cAEvB,mBAAmB,gBAAgB;AAC5C,WAAO;AACP,QAAI,CAAC,uBACH,SAAQ,OAAO,eAAe;cAEvB,mBAAmB,aAAa;AACzC,WAAO;AACP,QAAI,CAAC,uBACH,SAAQ,OAAO,eAAe;cAEvB,kBAAkB,QAAQ,EAAE;AACrC,WAAO;AACP,QAAI,CAAC,uBACH,SAAQ,OAAO,eAAe;cAEvB,YAAY,QAAW;AAChC,WAAO,KAAK,UAAU,QAAQ;AAC9B,QAAI,CAAC,uBACH,SAAQ,IAAI,gBAAgB,mBAAmB;;;AAcrD,SAAO,oBATU,MAAM,MACrB,IAAI,QAAQ,KAAK;GACf;GACA;GACA;GACA;GACD,CAAC,CACH,CAEmC;;AAGtC,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-handler-input-options.d.ts","names":[],"sources":["../../src/api/route-handler-input-options.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAOA;AAEuB,KAFX,wBAEW,CAAA,cAAA,MAAA,EAAA,qBAAA,gBAAA,GAAA,SAAA,CAAA,GAAA;EAEU,UAAA,CAAA,EAAlB,iBAAkB,CAAA,KAAA,CAAA;EAAlB,KAAA,CAAA,EACL,eADK,GACa,MADb,CAAA,MAAA,EAAA,MAAA,CAAA;EACL,OAAA,CAAA,EACE,OADF,GACY,MADZ,CAAA,MAAA,EAAA,MAAA,CAAA;CAAkB,GAAA,CAEvB,YAFuB,SAAA,SAAA,GAAA;EAChB,IAAA,CAAA,EAAA,KAAA;CAAU,GAAA;EACjB,IAAA,EAA4D,OAA5D,CAAoE,YAApE,EAAA,OAAA,CAAA;CAAoE,CAAA"}
1
+ {"version":3,"file":"route-handler-input-options.d.ts","names":[],"sources":["../../src/api/route-handler-input-options.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAQA;AAEuB,KAFX,wBAEW,CAAA,cAAA,MAAA,EAAA,qBAAA,gBAAA,GAAA,SAAA,CAAA,GAAA;EAEU,UAAA,CAAA,EAAlB,iBAAkB,CAAA,KAAA,CAAA;EAAlB,KAAA,CAAA,EACL,eADK,GACa,MADb,CAAA,MAAA,EAAA,MAAA,CAAA;EACL,OAAA,CAAA,EACE,OADF,GACY,MADZ,CAAA,MAAA,EAAA,MAAA,CAAA;CAAkB,GAAA,CAEvB,YAFuB,SAAA,SAAA,GAAA;EAChB,IAAA,CAAA,EAAA,KAAA;CAAU,GAAA;EACjB,IAAA,EAA4D,OAA5D,CAAoE,YAApE,EAAA,OAAA,CAAA;CAAoE,CAAA"}
@@ -1,6 +1,6 @@
1
- import { FragnoRouteConfig, HTTPMethod, RequestThisContext } from "./api.js";
2
1
  import { BoundServices } from "./bind-services.js";
3
2
  import { FragmentDefinition } from "./fragment-definition-builder.js";
3
+ import { FragnoRouteConfig, HTTPMethod, RequestThisContext } from "./api.js";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
5
 
6
6
  //#region src/api/route.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","names":[],"sources":["../../src/api/route.ts"],"sourcesContent":[],"mappings":";;;;;;KAOY,oBAAA,GAAuB,kBAAkB;UAEpC;EAFL,MAAA,EAGF,SAHE;EAEK,IAAA,EAET,OAFS;EACP,QAAA,EAEE,WAFF;EACF,WAAA,EAEO,YAFP;;AAEO,KAGH,YAHG,CAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,kBAAA,SAQY,iBARZ,CASX,UATW,EAAA,MAAA,EAWX,gBAXW,GAAA,SAAA,EAYX,gBAZW,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAeX,kBAfW,CAAA,EAAA,CAAA,GAAA,CAAA,OAAA,EAiBD,mBAjBC,CAiBmB,SAjBnB,EAiB4B,OAjB5B,EAiBmC,WAjBnC,EAiB8C,YAjB9C,CAAA,EAAA,GAiBgE,SAjBhE;;AAGf;;AAQI,KAWQ,iBAAA,GAAoB,oBAX5B,GAWmD,YAXnD,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;;;;AAM8B,KAUtB,qBAVsB,CAAA,UAAA,SAUmB,iBAVnB,EAAA,CAAA,GAU0C,CAV1C,SAAA,SAAA,CAAS,KAAA,MAAA,EAAO,GAAA,KAAA,cAAA,SAYjB,iBAZiB,EAAA,CAAW,GAczD,KAdyD,SAc3C,YAd2C,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,QAAA,CAAA,GAAA,CAAA,GAenD,OAfmD,EAAA,GAevC,qBAfuC,CAejB,IAfiB,CAAA,CAAA,GAAA,CAgBtD,KAhBsD,EAAA,GAgB5C,qBAhB4C,CAgBtB,IAhBsB,CAAA,CAAA,GAAA,EAAA;;;;AAK7D;AAKY,iBAaI,qBAbiB,CAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iCAAA,SAkBW,iBAlBX,EAAA,CAAA,CAAA,OAAA,EAoBtB,mBApBsB,CAoBF,SApBE,EAoBO,OApBP,EAoBc,WApBd,EAoByB,YApBzB,CAAA,EAAA,iBAAA,EAqBZ,kBArBY,CAAA,EAsB9B,qBAtB8B,CAsBR,kBAtBQ,CAAA;AAAoB,iBA2CrC,WA3CqC,CAAA,sBA4C7B,UA5C6B,EAAA,oBAAA,MAAA,EAAA,4BA8CvB,gBA9CuB,GAAA,SAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,+BAAA,MAAA,GAAA,MAAA,EAAA,2BAiDxB,kBAjDwB,GAiDH,kBAjDG,CAAA,CAAA,MAAA,EAmD3C,iBAnD2C,CAoDjD,OApDiD,EAqDjD,KArDiD,EAAA,SAAA,EAuDjD,aAvDiD,EAwDjD,UAxDiD,EAyDjD,gBAzDiD,EA0DjD,YA1DiD,CAAA,GAAA;EAAuB,WAAA,CAAA,EAAA,SAAA;CAE3C,CAAA,EA0D9B,iBA1D8B,CA2D/B,OA3D+B,EA4D/B,KA5D+B,EAAA,SAAA,EA8D/B,aA9D+B,EA+D/B,UA/D+B,EAgE/B,gBAhE+B,EAiE/B,YAjE+B,CAAA;AAE7B,iBAmEY,WAnEZ,CAAA,sBAoEoB,UApEpB,EAAA,oBAAA,MAAA,EAAA,2BAsEyB,gBAtEzB,EAAA,4BAuE0B,gBAvE1B,GAAA,SAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,+BAAA,MAAA,GAAA,MAAA,EAAA,2BA0EyB,kBA1EzB,GA0E8C,kBA1E9C,CAAA,CAAA,MAAA,EA4EM,iBA5EN,CA6EA,OA7EA,EA8EA,KA9EA,EA+EA,YA/EA,EAgFA,aAhFA,EAiFA,UAjFA,EAkFA,gBAlFA,EAmFA,YAnFA,CAAA,GAAA;EAAc,WAAA,EAoFG,YApFH;CACR,CAAA,EAoFP,iBApFO,CAqFR,OArFQ,EAsFR,KAtFQ,EAuFR,YAvFQ,EAwFR,aAxFQ,EAyFR,UAzFQ,EA0FR,gBA1FQ,EA2FR,YA3FQ,CAAA;AAAkC,KAiIhC,qBAAA,GAAwB,kBAjIQ,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;AAAtB,KAgJV,qBAhJU,CAAA,CAAA,CAAA,GAiJpB,CAjJoB,SAiJV,kBAjJU,CAAA,KAAA,QAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GAkJhB,OAlJgB,GAAA,KAAA;AACf,KAqJK,mBArJL,CAAA,CAAA,CAAA,GAsJL,CAtJK,SAsJK,kBAtJL,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GAuJD,KAvJC,GAAA,KAAA;AAAgC,KA6J3B,uBA7J2B,CAAA,CAAA,CAAA,GA8JrC,CA9JqC,SA8J3B,kBA9J2B,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,cAAA,EAAA,KAAA,UAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GA2KjC,aA3KiC,CA2KnB,aA3KmB,GA2KH,SA3KG,CAAA,GAAA,KAAA;AAAtB,KA+KL,0BA/KK,CAAA,CAAA,CAAA,GAgLf,CAhLe,SAgLL,kBAhLK,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,qBAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GA6LX,oBA7LW,GAAA,KAAA;AAAqB,KAiM1B,iCAjM0B,CAAA,CAAA,CAAA,GAkMpC,CAlMoC,SAkM1B,kBAlM0B,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,oBAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GA+MhC,mBA/MgC,GAgNhC,kBAhNgC;AAOtB,KA4MJ,iCA5MyB,CAAA,CAAA,CAAA,GA6MnC,CA7MmC,SA6MzB,kBA7MyB,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,oBAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GA0N/B,mBA1N+B,GA2N/B,kBA3N+B;AAKO,KAyNhC,0BAzNgC,CAAA,CAAA,CAAA,GAyNA,iCAzNA,CAyNkC,CAzNlC,CAAA;AAEb,iBA0Nf,YA1Ne,CAAA,0BA0NwB,qBA1NxB,CAAA,CAAA,UAAA,EA2NjB,WA3NiB,CAAA,EAAA;EAAS,MAAA,EAAA,CAAA,wBAAA,SA8NL,iBA9NK,CA+NlC,UA/NkC,EAAA,MAAA,EAiOlC,gBAjOkC,GAAA,SAAA,EAkOlC,gBAlOkC,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAqOlC,iCArOkC,CAqOA,WArOA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAyOzB,mBAzOyB,CA0OhC,qBA1OgC,CA0OV,WA1OU,CAAA,EA2OhC,mBA3OgC,CA2OZ,WA3OY,CAAA,EA4OhC,uBA5OgC,CA4OR,WA5OQ,CAAA,EA6OhC,0BA7OgC,CA6OL,WA7OK,CAAA,CAAA,GAAA;IAAO,WAAA,EAAA,CAAA,sBAgPf,UAhPe,EAAA,oBAAA,MAAA,EAAA,2BAkPV,gBAlPU,GAAA,SAAA,EAAA,4BAmPT,gBAnPS,GAAA,SAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,+BAAA,MAAA,GAAA,MAAA,CAAA,CAAA,MAAA,EAuP7B,iBAvP6B,CAwPnC,OAxPmC,EAyPnC,KAzPmC,EA0PnC,YA1PmC,EA2PnC,aA3PmC,EA4PnC,UA5PmC,EA6PnC,gBA7PmC,EA8PnC,iCA9PmC,CA8PD,WA9PC,CAAA,CAAA,EAAA,GAgQlC,iBAhQkC,CAiQrC,OAjQqC,EAkQrC,KAlQqC,EAmQrC,YAnQqC,EAoQrC,aApQqC,EAqQrC,UArQqC,EAsQrC,gBAtQqC,EAuQrC,iCAvQqC,CAuQH,WAvQG,CAAA,CAAA;EAAW,CAAA,EAAA,GA0QjD,SA1QiD,EAAA,GA2QnD,YA3QmD,CA4QtD,qBA5QsD,CA4QhC,WA5QgC,CAAA,EA6QtD,mBA7QsD,CA6QlC,WA7QkC,CAAA,EA8QtD,uBA9QsD,CA8Q9B,WA9Q8B,CAAA,EA+QtD,0BA/QsD,CA+Q3B,WA/Q2B,CAAA,EAgRtD,SAhRsD,CAAA;CAA/C;AACU,iBAoRL,YApRK,CAAA,0BAoRkC,qBApRlC,CAAA,CAAA,CAAA,EAAA;EACI,MAAA,EAAA,CAAA,wBAAA,SAqRU,iBArRV,CAsRnB,UAtRmB,EAAA,MAAA,EAwRnB,gBAxRmB,GAAA,SAAA,EAyRnB,gBAzRmB,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EA4RnB,iCA5RmB,CA4Re,WA5Rf,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAgSV,mBAhSU,CAiSjB,qBAjSiB,CAiSK,WAjSL,CAAA,EAkSjB,mBAlSiB,CAkSG,WAlSH,CAAA,EAmSjB,uBAnSiB,CAmSO,WAnSP,CAAA,EAoSjB,0BApSiB,CAoSU,WApSV,CAAA,CAAA,GAAA;IAAtB,WAAA,EAAA,CAAA,sBAuS6B,UAvS7B,EAAA,oBAAA,MAAA,EAAA,2BAySkC,gBAzSlC,GAAA,SAAA,EAAA,4BA0SmC,gBA1SnC,GAAA,SAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,EAAA,+BAAA,MAAA,GAAA,MAAA,CAAA,CAAA,MAAA,EA8Se,iBA9Sf,CA+SS,OA/ST,EAgTS,KAhTT,EAiTS,YAjTT,EAkTS,aAlTT,EAmTS,UAnTT,EAoTS,gBApTT,EAqTS,iCArTT,CAqT2C,WArT3C,CAAA,CAAA,EAAA,GAuTU,iBAvTV,CAwTO,OAxTP,EAyTO,KAzTP,EA0TO,YA1TP,EA2TO,aA3TP,EA4TO,UA5TP,EA6TO,gBA7TP,EA8TO,iCA9TP,CA8TyC,WA9TzC,CAAA,CAAA;EAAqB,CAAA,EAAA,GAiUf,SAjUe,EAAA,GAkUjB,YAlUiB,CAmUpB,qBAnUoB,CAmUE,WAnUF,CAAA,EAoUpB,mBApUoB,CAoUA,WApUA,CAAA,EAqUpB,uBArUoB,CAqUI,WArUJ,CAAA,EAsUpB,0BAtUoB,CAsUO,WAtUP,CAAA,EAuUpB,SAvUoB,CAAA;AAqBxB,CAAA"}
1
+ {"version":3,"file":"route.d.ts","names":[],"sources":["../../src/api/route.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","names":["routes: any[]"],"sources":["../../src/api/route.ts"],"sourcesContent":["// oxlint-disable no-explicit-any\n\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { FragnoRouteConfig, HTTPMethod, RequestThisContext } from \"./api\";\nimport type { FragmentDefinition } from \"./fragment-definition-builder\";\nimport type { BoundServices } from \"./bind-services\";\n\nexport type AnyFragnoRouteConfig = FragnoRouteConfig<HTTPMethod, string, any, any, any, any, any>;\n\nexport interface RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps = {}> {\n config: TConfig;\n deps: TDeps;\n services: TServices;\n serviceDeps: TServiceDeps;\n}\n\nexport type RouteFactory<\n TConfig,\n TDeps,\n TServices,\n TServiceDeps,\n TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n RequestThisContext\n >[],\n> = (context: RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps>) => TRoutes;\n\n/**\n * @internal\n */\nexport type AnyRouteOrFactory = AnyFragnoRouteConfig | RouteFactory<any, any, any, any, any>;\n\n/**\n * @internal\n */\nexport type FlattenRouteFactories<T extends readonly AnyRouteOrFactory[]> = T extends readonly [\n infer First,\n ...infer Rest extends readonly AnyRouteOrFactory[],\n]\n ? First extends RouteFactory<any, any, any, any, infer TRoutes>\n ? [...TRoutes, ...FlattenRouteFactories<Rest>]\n : [First, ...FlattenRouteFactories<Rest>]\n : [];\n\n/**\n * Helper to resolve route factories into routes\n * @internal\n */\nexport function resolveRouteFactories<\n TConfig,\n TDeps,\n TServices,\n TServiceDeps,\n const TRoutesOrFactories extends readonly AnyRouteOrFactory[],\n>(\n context: RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps>,\n routesOrFactories: TRoutesOrFactories,\n): FlattenRouteFactories<TRoutesOrFactories> {\n const routes: any[] = [];\n\n for (const item of routesOrFactories) {\n if (typeof item === \"function\") {\n // It's a route factory\n const factoryRoutes = item(context);\n routes.push(...factoryRoutes);\n } else {\n // It's a direct route\n routes.push(item);\n }\n }\n\n return routes as FlattenRouteFactories<TRoutesOrFactories>;\n}\n\n// TODO(Wilco): Do these overloads actually do anything?\n// TODO(Wilco): ValidPath<T> should be added back in here.\n\n// Overload for routes without inputSchema\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema?: undefined },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Overload for routes with inputSchema\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema: TInputSchema },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// implementation\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n >,\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n> {\n return config;\n}\n\n// ============================================================================\n// Type extractors for FragmentDefinition\n// ============================================================================\n\nexport type AnyFragmentDefinition = FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n>;\n\n// Extract config from FragmentDefinition\nexport type ExtractFragmentConfig<T> =\n T extends FragmentDefinition<infer TConfig, any, any, any, any, any, any, any, any, any, any>\n ? TConfig\n : never;\n\n// Extract deps from FragmentDefinition\nexport type ExtractFragmentDeps<T> =\n T extends FragmentDefinition<any, any, infer TDeps, any, any, any, any, any, any, any, any>\n ? TDeps\n : never;\n\n// Extract services from FragmentDefinition\n// This extracts both base services (flat) and named services (nested)\n// The result matches the structure of fragment.services at runtime\nexport type ExtractFragmentServices<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n infer TBaseServices,\n infer TServices,\n any,\n any,\n any,\n any,\n any,\n any\n >\n ? BoundServices<TBaseServices & TServices>\n : never;\n\n// Extract service dependencies from FragmentDefinition\nexport type ExtractFragmentServiceDeps<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n infer TServiceDependencies,\n any,\n any,\n any,\n any,\n any\n >\n ? TServiceDependencies\n : never;\n\n// Extract service this context from FragmentDefinition (used by services)\nexport type ExtractFragmentServiceThisContext<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer TServiceThisContext,\n any,\n any,\n any\n >\n ? TServiceThisContext\n : RequestThisContext;\n\n// Extract handler this context from FragmentDefinition (used by route handlers)\nexport type ExtractFragmentHandlerThisContext<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer THandlerThisContext,\n any,\n any\n >\n ? THandlerThisContext\n : RequestThisContext;\n\n// Legacy: Extract this context from FragmentDefinition (defaults to service context for backwards compatibility)\nexport type ExtractFragmentThisContext<T> = ExtractFragmentServiceThisContext<T>;\n\n// Overload that infers types from FragmentDefinition (runtime value)\nexport function defineRoutes<const TDefinition extends AnyFragmentDefinition>(\n definition: TDefinition,\n): {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n ExtractFragmentHandlerThisContext<TDefinition>\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >;\n },\n ) => TRoutes,\n ) => RouteFactory<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>,\n TRoutes\n >;\n};\n\n// Overload that infers types from FragmentDefinition (type parameter only)\nexport function defineRoutes<const TDefinition extends AnyFragmentDefinition>(): {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n ExtractFragmentHandlerThisContext<TDefinition>\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >;\n },\n ) => TRoutes,\n ) => RouteFactory<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>,\n TRoutes\n >;\n};\n\n// Implementation\nexport function defineRoutes<\n const TDefinition extends AnyFragmentDefinition | undefined = undefined,\n>(\n // Parameter is only used for type inference, not runtime\n _definition?: TDefinition,\n) {\n return {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentConfig<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentDeps<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServices<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServiceDeps<TDefinition> : {}\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >;\n },\n ) => TRoutes,\n ): RouteFactory<\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentConfig<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentDeps<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServices<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServiceDeps<TDefinition> : {},\n TRoutes\n > => {\n // Create a wrapper around the callback that adds the defineRoute function\n return (ctx: RouteFactoryContext<unknown, unknown, unknown, unknown>) => {\n const extendedCtx = {\n ...ctx,\n defineRoute,\n };\n return fn(extendedCtx as any);\n };\n },\n };\n}\n"],"mappings":";;;;;AAqDA,SAAgB,sBAOd,SACA,mBAC2C;CAC3C,MAAMA,SAAgB,EAAE;AAExB,MAAK,MAAM,QAAQ,kBACjB,KAAI,OAAO,SAAS,YAAY;EAE9B,MAAM,gBAAgB,KAAK,QAAQ;AACnC,SAAO,KAAK,GAAG,cAAc;OAG7B,QAAO,KAAK,KAAK;AAIrB,QAAO;;AAgET,SAAgB,YASd,QAiBA;AACA,QAAO;;AAmOT,SAAgB,aAId,aACA;AACA,QAAO,EACL,SAaE,OA6CG;AAEH,UAAQ,QAAiE;AAKvE,UAAO,GAJa;IAClB,GAAG;IACH;IACD,CAC4B;;IAGlC"}
1
+ {"version":3,"file":"route.js","names":["routes: any[]"],"sources":["../../src/api/route.ts"],"sourcesContent":["// oxlint-disable no-explicit-any\n\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\nimport type { FragnoRouteConfig, HTTPMethod, RequestThisContext } from \"./api\";\nimport type { BoundServices } from \"./bind-services\";\nimport type { FragmentDefinition } from \"./fragment-definition-builder\";\n\nexport type AnyFragnoRouteConfig = FragnoRouteConfig<HTTPMethod, string, any, any, any, any, any>;\n\nexport interface RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps = {}> {\n config: TConfig;\n deps: TDeps;\n services: TServices;\n serviceDeps: TServiceDeps;\n}\n\nexport type RouteFactory<\n TConfig,\n TDeps,\n TServices,\n TServiceDeps,\n TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n RequestThisContext\n >[],\n> = (context: RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps>) => TRoutes;\n\n/**\n * @internal\n */\nexport type AnyRouteOrFactory = AnyFragnoRouteConfig | RouteFactory<any, any, any, any, any>;\n\n/**\n * @internal\n */\nexport type FlattenRouteFactories<T extends readonly AnyRouteOrFactory[]> = T extends readonly [\n infer First,\n ...infer Rest extends readonly AnyRouteOrFactory[],\n]\n ? First extends RouteFactory<any, any, any, any, infer TRoutes>\n ? [...TRoutes, ...FlattenRouteFactories<Rest>]\n : [First, ...FlattenRouteFactories<Rest>]\n : [];\n\n/**\n * Helper to resolve route factories into routes\n * @internal\n */\nexport function resolveRouteFactories<\n TConfig,\n TDeps,\n TServices,\n TServiceDeps,\n const TRoutesOrFactories extends readonly AnyRouteOrFactory[],\n>(\n context: RouteFactoryContext<TConfig, TDeps, TServices, TServiceDeps>,\n routesOrFactories: TRoutesOrFactories,\n): FlattenRouteFactories<TRoutesOrFactories> {\n const routes: any[] = [];\n\n for (const item of routesOrFactories) {\n if (typeof item === \"function\") {\n // It's a route factory\n const factoryRoutes = item(context);\n routes.push(...factoryRoutes);\n } else {\n // It's a direct route\n routes.push(item);\n }\n }\n\n return routes as FlattenRouteFactories<TRoutesOrFactories>;\n}\n\n// TODO(Wilco): Do these overloads actually do anything?\n// TODO(Wilco): ValidPath<T> should be added back in here.\n\n// Overload for routes without inputSchema\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema?: undefined },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n undefined,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// Overload for routes with inputSchema\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n > & { inputSchema: TInputSchema },\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n>;\n\n// implementation\nexport function defineRoute<\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n const TThisContext extends RequestThisContext = RequestThisContext,\n>(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n >,\n): FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TThisContext\n> {\n return config;\n}\n\n// ============================================================================\n// Type extractors for FragmentDefinition\n// ============================================================================\n\nexport type AnyFragmentDefinition = FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n>;\n\n// Extract config from FragmentDefinition\nexport type ExtractFragmentConfig<T> =\n T extends FragmentDefinition<infer TConfig, any, any, any, any, any, any, any, any, any, any>\n ? TConfig\n : never;\n\n// Extract deps from FragmentDefinition\nexport type ExtractFragmentDeps<T> =\n T extends FragmentDefinition<any, any, infer TDeps, any, any, any, any, any, any, any, any>\n ? TDeps\n : never;\n\n// Extract services from FragmentDefinition\n// This extracts both base services (flat) and named services (nested)\n// The result matches the structure of fragment.services at runtime\nexport type ExtractFragmentServices<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n infer TBaseServices,\n infer TServices,\n any,\n any,\n any,\n any,\n any,\n any\n >\n ? BoundServices<TBaseServices & TServices>\n : never;\n\n// Extract service dependencies from FragmentDefinition\nexport type ExtractFragmentServiceDeps<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n infer TServiceDependencies,\n any,\n any,\n any,\n any,\n any\n >\n ? TServiceDependencies\n : never;\n\n// Extract service this context from FragmentDefinition (used by services)\nexport type ExtractFragmentServiceThisContext<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer TServiceThisContext,\n any,\n any,\n any\n >\n ? TServiceThisContext\n : RequestThisContext;\n\n// Extract handler this context from FragmentDefinition (used by route handlers)\nexport type ExtractFragmentHandlerThisContext<T> =\n T extends FragmentDefinition<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer THandlerThisContext,\n any,\n any\n >\n ? THandlerThisContext\n : RequestThisContext;\n\n// Legacy: Extract this context from FragmentDefinition (defaults to service context for backwards compatibility)\nexport type ExtractFragmentThisContext<T> = ExtractFragmentServiceThisContext<T>;\n\n// Overload that infers types from FragmentDefinition (runtime value)\nexport function defineRoutes<const TDefinition extends AnyFragmentDefinition>(\n definition: TDefinition,\n): {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n ExtractFragmentHandlerThisContext<TDefinition>\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >;\n },\n ) => TRoutes,\n ) => RouteFactory<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>,\n TRoutes\n >;\n};\n\n// Overload that infers types from FragmentDefinition (type parameter only)\nexport function defineRoutes<const TDefinition extends AnyFragmentDefinition>(): {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n ExtractFragmentHandlerThisContext<TDefinition>\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n ExtractFragmentHandlerThisContext<TDefinition>\n >;\n },\n ) => TRoutes,\n ) => RouteFactory<\n ExtractFragmentConfig<TDefinition>,\n ExtractFragmentDeps<TDefinition>,\n ExtractFragmentServices<TDefinition>,\n ExtractFragmentServiceDeps<TDefinition>,\n TRoutes\n >;\n};\n\n// Implementation\nexport function defineRoutes<\n const TDefinition extends AnyFragmentDefinition | undefined = undefined,\n>(\n // Parameter is only used for type inference, not runtime\n _definition?: TDefinition,\n) {\n return {\n create: <\n const TRoutes extends readonly FragnoRouteConfig<\n HTTPMethod,\n string,\n StandardSchemaV1 | undefined,\n StandardSchemaV1 | undefined,\n string,\n string,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >[],\n >(\n fn: (\n context: RouteFactoryContext<\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentConfig<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentDeps<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServices<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServiceDeps<TDefinition> : {}\n > & {\n defineRoute: <\n const TMethod extends HTTPMethod,\n const TPath extends string,\n const TInputSchema extends StandardSchemaV1 | undefined,\n const TOutputSchema extends StandardSchemaV1 | undefined,\n const TErrorCode extends string = string,\n const TQueryParameters extends string = string,\n >(\n config: FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >,\n ) => FragnoRouteConfig<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters,\n TDefinition extends AnyFragmentDefinition\n ? ExtractFragmentThisContext<TDefinition>\n : RequestThisContext\n >;\n },\n ) => TRoutes,\n ): RouteFactory<\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentConfig<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentDeps<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServices<TDefinition> : {},\n TDefinition extends AnyFragmentDefinition ? ExtractFragmentServiceDeps<TDefinition> : {},\n TRoutes\n > => {\n // Create a wrapper around the callback that adds the defineRoute function\n return (ctx: RouteFactoryContext<unknown, unknown, unknown, unknown>) => {\n const extendedCtx = {\n ...ctx,\n defineRoute,\n };\n return fn(extendedCtx as any);\n };\n },\n };\n}\n"],"mappings":";;;;;AAsDA,SAAgB,sBAOd,SACA,mBAC2C;CAC3C,MAAMA,SAAgB,EAAE;AAExB,MAAK,MAAM,QAAQ,kBACjB,KAAI,OAAO,SAAS,YAAY;EAE9B,MAAM,gBAAgB,KAAK,QAAQ;AACnC,SAAO,KAAK,GAAG,cAAc;OAG7B,QAAO,KAAK,KAAK;AAIrB,QAAO;;AAgET,SAAgB,YASd,QAiBA;AACA,QAAO;;AAmOT,SAAgB,aAId,aACA;AACA,QAAO,EACL,SAaE,OA6CG;AAEH,UAAQ,QAAiE;AAKvE,UAAO,GAJa;IAClB,GAAG;IACH;IACD,CAC4B;;IAGlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-types.d.ts","names":[],"sources":["../../src/api/shared-types.ts"],"sourcesContent":[],"mappings":";;;;;;;AAMA;AAOY,UAPK,kBAAA,CAQe;EAMf,UAAA,CAAA,EAAA,MAAA;AASjB;;;;AAYU,KA5BE,aAAA,GA4BF;EAAO,IAAA,EAAA,SAAA;WA3Be;;;kBACQ;;;;;UAKvB,wBAAA;;;kBAGC;;;;;UAMD;UAEL;;gBAEM;iBACC;;;;;;UAOT"}
1
+ {"version":3,"file":"shared-types.d.ts","names":[],"sources":["../../src/api/shared-types.ts"],"sourcesContent":[],"mappings":";;;;;;;AAOA;AAOY,UAPK,kBAAA,CAQe;EAMf,UAAA,CAAA,EAAA,MAAA;AASjB;;;;AAYU,KA5BE,aAAA,GA4BF;EAAO,IAAA,EAAA,SAAA;WA3Be;;;kBACQ;;;;;UAKvB,wBAAA;;;kBAGC;;;;;UAMD;UAEL;;gBAEM;iBACC;;;;;;UAOT"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-error.d.ts","names":[],"sources":["../../src/client/client-error.ts"],"sourcesContent":[],"mappings":";;;KAEY,kBAAA;UACF;AADV,CAAA;AAOA;;;AASc,uBATQ,iBASR,CAAA,cAAA,MAAA,GAAA,MAAA,CAAA,SATiE,KAAA,CASjE;EATiE,CAAA,OAAA;EAAK,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAG/C,KAH+C,EAAA,OAAA,CAAA,EAG/B,kBAH+B;EAcvE,IAAA,IAAA,CAAA,CAAA,EALC,KAKD,GAAA,CAAA,MAAuB,GAAA,CAAA,CAAA,CAAA;;AAYY,cAZnC,sBAAA,SAA+B,iBAYI,CAAA,SAAA,GAAA,eAAA,GAAA,aAAA,CAAA,CAAA;EAZJ,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAA,GAAA,eAAA,GAAA,aAAA,EAAA,OAAA,CAAA,EAM/B,kBAN+B;EAAiB,OAAA,qBAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAYb,sBAZa;AA4B7D;AAUA;AAUA;;AAMa,cA1BA,6BAAA,SAAsC,sBAAA,CA0BtC;EAOG,WAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAhCmD,kBAgCnD;;;AAKhB;;AAMM,cAlCO,2BAAA,SAAoC,sBAAA,CAkC3C;EAAS,WAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAjCiD,kBAiCjD;;;;;AAmBD,cA3CD,2BAAA,SAAoC,iBA2CnC,CAAA,mBAAA,CAAA,CAAA;EAKA,CAAA,OAAA;EACoB,WAAA,CAAA,OAAA,EAAA,MAAA,GAAA,SAAA,EAAA,MAAA,EA5CtB,UA4CsB,EAAA,OAAA,CAAA,EA3CrB,kBA2CqB;EAArB,IAAA,MAAA,CAAA,CAAA,EApCG,UAoCH;;AAAR,cA/BQ,oBA+BR,CAAA,mBAAA,MAAA,GAAA,MAAA,CAAA,SA7BK,iBA6BL,CA7BuB,UA6BvB,CAAA,CAAA;EA7BK,CAAA,OAAA;EAAiB,WAAA,CAAA;IAAA,OAAA;IAAA;GAAA,EAAA;;UAIqB;aACpC,sBACC;gBAOG;;;;;;;cAUF;oEAKA,WACT,QAAQ,qBAAqB,cAAc"}
1
+ {"version":3,"file":"client-error.d.ts","names":[],"sources":["../../src/client/client-error.ts"],"sourcesContent":[],"mappings":";;;KAEY,kBAAA;UACF;AADV,CAAA;AAOA;;;AASc,uBATQ,iBASR,CAAA,cAAA,MAAA,GAAA,MAAA,CAAA,SATiE,KAAA,CASjE;EATiE,CAAA,OAAA;EAAK,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAG/C,KAH+C,EAAA,OAAA,CAAA,EAG/B,kBAH+B;EAcvE,IAAA,IAAA,CAAA,CAAA,EALC,KAKD,GAAA,CAAA,MAAuB,GAAA,CAAA,CAAA,CAAA;;AAYY,cAZnC,sBAAA,SAA+B,iBAYI,CAAA,SAAA,GAAA,eAAA,GAAA,aAAA,CAAA,CAAA;EAZJ,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAA,GAAA,eAAA,GAAA,aAAA,EAAA,OAAA,CAAA,EAM/B,kBAN+B;EAAiB,OAAA,qBAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAYb,sBAZa;AA4B7D;AAUA;AAUA;;AAMa,cA1BA,6BAAA,SAAsC,sBAAA,CA0BtC;EAOG,WAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAhCmD,kBAgCnD;;;AAKhB;;AAMM,cAlCO,2BAAA,SAAoC,sBAAA,CAkC3C;EAAS,WAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAjCiD,kBAiCjD;;;;;AAmBQ,cA3CV,2BAAA,SAAoC,iBA2C1B,CAAA,mBAAA,CAAA,CAAA;EAKT,CAAA,OAAA;EACoB,WAAA,CAAA,OAAA,EAAA,MAAA,GAAA,SAAA,EAAA,MAAA,EA5CtB,UA4CsB,EAAA,OAAA,CAAA,EA3CrB,kBA2CqB;EAArB,IAAA,MAAA,CAAA,CAAA,EApCG,UAoCH;;AAAR,cA/BQ,oBA+BR,CAAA,mBAAA,MAAA,GAAA,MAAA,CAAA,SA7BK,iBA6BL,CA7BuB,UA6BvB,CAAA,CAAA;EA7BK,CAAA,OAAA;EAAiB,WAAA,CAAA;IAAA,OAAA;IAAA;GAAA,EAAA;;UAIqB;aACpC,sBACC;gBAOG;;;;;;;cAUO;oEAKT,WACT,QAAQ,qBAAqB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-error.js","names":["#code","#status"],"sources":["../../src/client/client-error.ts"],"sourcesContent":["import type { StatusCode } from \"../http/http-status\";\n\nexport type FragnoErrorOptions = {\n cause?: Error | unknown;\n};\n\n/**\n * Base error class for all Fragno client errors.\n */\nexport abstract class FragnoClientError<TCode extends string = string> extends Error {\n readonly #code: TCode;\n\n constructor(message: string, code: TCode, options: FragnoErrorOptions = {}) {\n super(message, { cause: options.cause });\n this.name = \"FragnoClientError\";\n this.#code = code;\n }\n\n get code(): TCode | (string & {}) {\n return this.#code;\n }\n}\n\nexport class FragnoClientFetchError extends FragnoClientError<\n \"NO_BODY\" | \"NETWORK_ERROR\" | \"ABORT_ERROR\"\n> {\n constructor(\n message: string,\n code: \"NO_BODY\" | \"NETWORK_ERROR\" | \"ABORT_ERROR\",\n options: FragnoErrorOptions = {},\n ) {\n super(message, code, options);\n this.name = \"FragnoClientFetchError\";\n }\n\n static fromUnknownFetchError(error: unknown): FragnoClientFetchError {\n if (!(error instanceof Error)) {\n return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n }\n\n if (error.name === \"AbortError\") {\n return new FragnoClientFetchAbortError(\"Request was aborted\", { cause: error });\n }\n\n return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n }\n}\n\n/**\n * Error thrown when a network request fails (e.g., no internet connection, DNS failure).\n */\nexport class FragnoClientFetchNetworkError extends FragnoClientFetchError {\n constructor(message: string = \"Network request failed\", options: FragnoErrorOptions = {}) {\n super(message, \"NETWORK_ERROR\", options);\n this.name = \"FragnoClientFetchNetworkError\";\n }\n}\n\n/**\n * Error thrown when a request is aborted (e.g., user cancels request, timeout).\n */\nexport class FragnoClientFetchAbortError extends FragnoClientFetchError {\n constructor(message: string = \"Request was aborted\", options: FragnoErrorOptions = {}) {\n super(message, \"ABORT_ERROR\", options);\n this.name = \"FragnoClientFetchAbortError\";\n }\n}\n\n/**\n * Error thrown when the API result is unexpected, e.g. no json is returned.\n */\nexport class FragnoClientUnknownApiError extends FragnoClientError<\"UNKNOWN_API_ERROR\"> {\n readonly #status: StatusCode;\n\n constructor(\n message: string = \"Unknown API error\",\n status: StatusCode,\n options: FragnoErrorOptions = {},\n ) {\n super(message, \"UNKNOWN_API_ERROR\", options);\n this.name = \"FragnoClientUnknownApiError\";\n this.#status = status;\n }\n\n get status(): StatusCode {\n return this.#status;\n }\n}\n\nexport class FragnoClientApiError<\n TErrorCode extends string = string,\n> extends FragnoClientError<TErrorCode> {\n readonly #status: StatusCode;\n\n constructor(\n { message, code }: { message: string; code: TErrorCode },\n status: StatusCode,\n options: FragnoErrorOptions = {},\n ) {\n super(message, code, options);\n this.name = \"FragnoClientApiError\";\n this.#status = status;\n }\n\n get status(): StatusCode {\n return this.#status;\n }\n\n /**\n * The error code returned by the API.\n *\n * The type is `TErrorCode` (the set of known error codes for this route), but may also be a string\n * for forward compatibility with future error codes.\n */\n get code(): TErrorCode | (string & {}) {\n return super.code as TErrorCode | (string & {});\n }\n\n static async fromResponse<TErrorCode extends string = string>(\n response: Response,\n ): Promise<FragnoClientApiError<TErrorCode> | FragnoClientUnknownApiError> {\n const unknown = await response.json();\n const status = response.status as StatusCode;\n\n if (!(\"message\" in unknown || \"code\" in unknown)) {\n return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n }\n\n if (!(typeof unknown.message === \"string\" && typeof unknown.code === \"string\")) {\n return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n }\n\n return new FragnoClientApiError(\n {\n message: unknown.message,\n code: unknown.code as TErrorCode,\n },\n status,\n );\n }\n}\n"],"mappings":";;;;AASA,IAAsB,oBAAtB,cAA+E,MAAM;CACnF,CAASA;CAET,YAAY,SAAiB,MAAa,UAA8B,EAAE,EAAE;AAC1E,QAAM,SAAS,EAAE,OAAO,QAAQ,OAAO,CAAC;AACxC,OAAK,OAAO;AACZ,QAAKA,OAAQ;;CAGf,IAAI,OAA8B;AAChC,SAAO,MAAKA;;;AAIhB,IAAa,yBAAb,cAA4C,kBAE1C;CACA,YACE,SACA,MACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,MAAM,QAAQ;AAC7B,OAAK,OAAO;;CAGd,OAAO,sBAAsB,OAAwC;AACnE,MAAI,EAAE,iBAAiB,OACrB,QAAO,IAAI,8BAA8B,0BAA0B,EAAE,OAAO,OAAO,CAAC;AAGtF,MAAI,MAAM,SAAS,aACjB,QAAO,IAAI,4BAA4B,uBAAuB,EAAE,OAAO,OAAO,CAAC;AAGjF,SAAO,IAAI,8BAA8B,0BAA0B,EAAE,OAAO,OAAO,CAAC;;;;;;AAOxF,IAAa,gCAAb,cAAmD,uBAAuB;CACxE,YAAY,UAAkB,0BAA0B,UAA8B,EAAE,EAAE;AACxF,QAAM,SAAS,iBAAiB,QAAQ;AACxC,OAAK,OAAO;;;;;;AAOhB,IAAa,8BAAb,cAAiD,uBAAuB;CACtE,YAAY,UAAkB,uBAAuB,UAA8B,EAAE,EAAE;AACrF,QAAM,SAAS,eAAe,QAAQ;AACtC,OAAK,OAAO;;;;;;AAOhB,IAAa,8BAAb,cAAiD,kBAAuC;CACtF,CAASC;CAET,YACE,UAAkB,qBAClB,QACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,qBAAqB,QAAQ;AAC5C,OAAK,OAAO;AACZ,QAAKA,SAAU;;CAGjB,IAAI,SAAqB;AACvB,SAAO,MAAKA;;;AAIhB,IAAa,uBAAb,MAAa,6BAEH,kBAA8B;CACtC,CAASA;CAET,YACE,EAAE,SAAS,QACX,QACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,MAAM,QAAQ;AAC7B,OAAK,OAAO;AACZ,QAAKA,SAAU;;CAGjB,IAAI,SAAqB;AACvB,SAAO,MAAKA;;;;;;;;CASd,IAAI,OAAmC;AACrC,SAAO,MAAM;;CAGf,aAAa,aACX,UACyE;EACzE,MAAM,UAAU,MAAM,SAAS,MAAM;EACrC,MAAM,SAAS,SAAS;AAExB,MAAI,EAAE,aAAa,WAAW,UAAU,SACtC,QAAO,IAAI,4BAA4B,qBAAqB,OAAO;AAGrE,MAAI,EAAE,OAAO,QAAQ,YAAY,YAAY,OAAO,QAAQ,SAAS,UACnE,QAAO,IAAI,4BAA4B,qBAAqB,OAAO;AAGrE,SAAO,IAAI,qBACT;GACE,SAAS,QAAQ;GACjB,MAAM,QAAQ;GACf,EACD,OACD"}
1
+ {"version":3,"file":"client-error.js","names":["#code","#status"],"sources":["../../src/client/client-error.ts"],"sourcesContent":["import type { StatusCode } from \"../http/http-status\";\n\nexport type FragnoErrorOptions = {\n cause?: Error | unknown;\n};\n\n/**\n * Base error class for all Fragno client errors.\n */\nexport abstract class FragnoClientError<TCode extends string = string> extends Error {\n readonly #code: TCode;\n\n constructor(message: string, code: TCode, options: FragnoErrorOptions = {}) {\n super(message, { cause: options.cause });\n this.name = \"FragnoClientError\";\n this.#code = code;\n }\n\n get code(): TCode | (string & {}) {\n return this.#code;\n }\n}\n\nexport class FragnoClientFetchError extends FragnoClientError<\n \"NO_BODY\" | \"NETWORK_ERROR\" | \"ABORT_ERROR\"\n> {\n constructor(\n message: string,\n code: \"NO_BODY\" | \"NETWORK_ERROR\" | \"ABORT_ERROR\",\n options: FragnoErrorOptions = {},\n ) {\n super(message, code, options);\n this.name = \"FragnoClientFetchError\";\n }\n\n static fromUnknownFetchError(error: unknown): FragnoClientFetchError {\n if (!(error instanceof Error)) {\n return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n }\n\n if (error.name === \"AbortError\") {\n return new FragnoClientFetchAbortError(\"Request was aborted\", { cause: error });\n }\n\n return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n }\n}\n\n/**\n * Error thrown when a network request fails (e.g., no internet connection, DNS failure).\n */\nexport class FragnoClientFetchNetworkError extends FragnoClientFetchError {\n constructor(message: string = \"Network request failed\", options: FragnoErrorOptions = {}) {\n super(message, \"NETWORK_ERROR\", options);\n this.name = \"FragnoClientFetchNetworkError\";\n }\n}\n\n/**\n * Error thrown when a request is aborted (e.g., user cancels request, timeout).\n */\nexport class FragnoClientFetchAbortError extends FragnoClientFetchError {\n constructor(message: string = \"Request was aborted\", options: FragnoErrorOptions = {}) {\n super(message, \"ABORT_ERROR\", options);\n this.name = \"FragnoClientFetchAbortError\";\n }\n}\n\n/**\n * Error thrown when the API result is unexpected, e.g. no json is returned.\n */\nexport class FragnoClientUnknownApiError extends FragnoClientError<\"UNKNOWN_API_ERROR\"> {\n readonly #status: StatusCode;\n\n constructor(\n message: string = \"Unknown API error\",\n status: StatusCode,\n options: FragnoErrorOptions = {},\n ) {\n super(message, \"UNKNOWN_API_ERROR\", options);\n this.name = \"FragnoClientUnknownApiError\";\n this.#status = status;\n }\n\n get status(): StatusCode {\n return this.#status;\n }\n}\n\nexport class FragnoClientApiError<\n TErrorCode extends string = string,\n> extends FragnoClientError<TErrorCode> {\n readonly #status: StatusCode;\n\n constructor(\n { message, code }: { message: string; code: TErrorCode },\n status: StatusCode,\n options: FragnoErrorOptions = {},\n ) {\n super(message, code, options);\n this.name = \"FragnoClientApiError\";\n this.#status = status;\n }\n\n get status(): StatusCode {\n return this.#status;\n }\n\n /**\n * The error code returned by the API.\n *\n * The type is `TErrorCode` (the set of known error codes for this route), but may also be a string\n * for forward compatibility with future error codes.\n */\n override get code(): TErrorCode | (string & {}) {\n return super.code as TErrorCode | (string & {});\n }\n\n static async fromResponse<TErrorCode extends string = string>(\n response: Response,\n ): Promise<FragnoClientApiError<TErrorCode> | FragnoClientUnknownApiError> {\n const unknown = await response.json();\n const status = response.status as StatusCode;\n\n if (!(\"message\" in unknown || \"code\" in unknown)) {\n return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n }\n\n if (!(typeof unknown.message === \"string\" && typeof unknown.code === \"string\")) {\n return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n }\n\n return new FragnoClientApiError(\n {\n message: unknown.message,\n code: unknown.code as TErrorCode,\n },\n status,\n );\n }\n}\n"],"mappings":";;;;AASA,IAAsB,oBAAtB,cAA+E,MAAM;CACnF,CAASA;CAET,YAAY,SAAiB,MAAa,UAA8B,EAAE,EAAE;AAC1E,QAAM,SAAS,EAAE,OAAO,QAAQ,OAAO,CAAC;AACxC,OAAK,OAAO;AACZ,QAAKA,OAAQ;;CAGf,IAAI,OAA8B;AAChC,SAAO,MAAKA;;;AAIhB,IAAa,yBAAb,cAA4C,kBAE1C;CACA,YACE,SACA,MACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,MAAM,QAAQ;AAC7B,OAAK,OAAO;;CAGd,OAAO,sBAAsB,OAAwC;AACnE,MAAI,EAAE,iBAAiB,OACrB,QAAO,IAAI,8BAA8B,0BAA0B,EAAE,OAAO,OAAO,CAAC;AAGtF,MAAI,MAAM,SAAS,aACjB,QAAO,IAAI,4BAA4B,uBAAuB,EAAE,OAAO,OAAO,CAAC;AAGjF,SAAO,IAAI,8BAA8B,0BAA0B,EAAE,OAAO,OAAO,CAAC;;;;;;AAOxF,IAAa,gCAAb,cAAmD,uBAAuB;CACxE,YAAY,UAAkB,0BAA0B,UAA8B,EAAE,EAAE;AACxF,QAAM,SAAS,iBAAiB,QAAQ;AACxC,OAAK,OAAO;;;;;;AAOhB,IAAa,8BAAb,cAAiD,uBAAuB;CACtE,YAAY,UAAkB,uBAAuB,UAA8B,EAAE,EAAE;AACrF,QAAM,SAAS,eAAe,QAAQ;AACtC,OAAK,OAAO;;;;;;AAOhB,IAAa,8BAAb,cAAiD,kBAAuC;CACtF,CAASC;CAET,YACE,UAAkB,qBAClB,QACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,qBAAqB,QAAQ;AAC5C,OAAK,OAAO;AACZ,QAAKA,SAAU;;CAGjB,IAAI,SAAqB;AACvB,SAAO,MAAKA;;;AAIhB,IAAa,uBAAb,MAAa,6BAEH,kBAA8B;CACtC,CAASA;CAET,YACE,EAAE,SAAS,QACX,QACA,UAA8B,EAAE,EAChC;AACA,QAAM,SAAS,MAAM,QAAQ;AAC7B,OAAK,OAAO;AACZ,QAAKA,SAAU;;CAGjB,IAAI,SAAqB;AACvB,SAAO,MAAKA;;;;;;;;CASd,IAAa,OAAmC;AAC9C,SAAO,MAAM;;CAGf,aAAa,aACX,UACyE;EACzE,MAAM,UAAU,MAAM,SAAS,MAAM;EACrC,MAAM,SAAS,SAAS;AAExB,MAAI,EAAE,aAAa,WAAW,UAAU,SACtC,QAAO,IAAI,4BAA4B,qBAAqB,OAAO;AAGrE,MAAI,EAAE,OAAO,QAAQ,YAAY,YAAY,OAAO,QAAQ,SAAS,UACnE,QAAO,IAAI,4BAA4B,qBAAqB,OAAO;AAGrE,SAAO,IAAI,qBACT;GACE,SAAS,QAAQ;GACjB,MAAM,QAAQ;GACf,EACD,OACD"}
@@ -1,41 +1,72 @@
1
1
  import { MaybeExtractPathParamsOrWiden } from "../api/internal/path.js";
2
2
  import { InferOr } from "../util/types-util.js";
3
+ import { AnyFragnoRouteConfig, AnyRouteOrFactory, FlattenRouteFactories } from "../api/route.js";
3
4
  import { FetcherConfig, FragnoFragmentSharedConfig as FragnoFragmentSharedConfig$1, FragnoPublicClientConfig, FragnoPublicConfig } from "../api/shared-types.js";
4
- import { FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext } from "../api/api.js";
5
- import { AnyRouteOrFactory, FlattenRouteFactories } from "../api/route.js";
6
- import { FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError, FragnoErrorOptions } from "./client-error.js";
7
- import { AnyFragnoInstantiatedFragment, FragnoFragmentSharedConfig } from "../api/fragment-instantiator.js";
8
5
  import { FragmentDefinition } from "../api/fragment-definition-builder.js";
6
+ import { FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError, FragnoErrorOptions } from "./client-error.js";
7
+ import { FragnoFragmentSharedConfig } from "../api/fragment-instantiator.js";
8
+ import { FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext } from "../api/api.js";
9
9
  import { ReadableAtom, Store } from "nanostores";
10
10
  import { FetcherStore, MutatorStore } from "@nanostores/query";
11
11
  import { StandardSchemaV1 } from "@standard-schema/spec";
12
12
 
13
13
  //#region src/client/client.d.ts
14
-
15
14
  /**
16
15
  * Symbols used to identify hook types
17
16
  */
18
17
  declare const GET_HOOK_SYMBOL: unique symbol;
19
18
  declare const MUTATOR_HOOK_SYMBOL: unique symbol;
20
19
  declare const STORE_SYMBOL: unique symbol;
20
+ /**
21
+ * @internal
22
+ */
23
+ type FilterRouteByMethod<TRoute$1, TExpectedMethod extends HTTPMethod> = TRoute$1 extends FragnoRouteConfig<infer TMethod, infer TPath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? [Extract<TMethod, TExpectedMethod>] extends [never] ? [Extract<TExpectedMethod, TMethod>] extends [never] ? never : FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never;
24
+ /**
25
+ * @internal
26
+ */
27
+ type FilterRouteByPath<TRoute$1, TPath$1 extends string> = TRoute$1 extends FragnoRouteConfig<infer TMethod, infer TRoutePath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? [Extract<TRoutePath, TPath$1>] extends [never] ? [Extract<TPath$1, TRoutePath>] extends [never] ? never : FragnoRouteConfig<TMethod, TRoutePath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : FragnoRouteConfig<TMethod, TRoutePath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never;
28
+ /**
29
+ * @internal
30
+ */
31
+ type ExtractGetRoutesExact<T extends readonly AnyFragnoRouteConfig[]> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer TMethod, infer TPath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? TMethod extends "GET" ? FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never : never }[number][];
21
32
  /**
22
33
  * Extract only GET routes from a library config's routes array
23
34
  * @internal
24
35
  */
25
- type ExtractGetRoutes<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer Method, infer Path, infer Input, infer Output, infer ErrorCode, infer QueryParams> ? Method extends "GET" ? FragnoRouteConfig<Method, Path, Input, Output, ErrorCode, QueryParams> : never : never }[number][];
36
+ type ExtractGetRoutes<T extends readonly AnyFragnoRouteConfig[]> = ExtractGetRoutesExact<T>;
37
+ /**
38
+ * @internal
39
+ */
40
+ type ExtractRoutePathExact<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? TMethod extends TExpectedMethod ? TPath : never : never }[number];
41
+ /**
42
+ * @internal
43
+ */
44
+ type ExtractRoutePathLoose<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: FilterRouteByMethod<T[K], TExpectedMethod> extends FragnoRouteConfig<infer _TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? TPath : never }[number];
45
+ /**
46
+ * @internal
47
+ */
48
+ type HasWidenedRouteShape<T extends readonly AnyFragnoRouteConfig[]> = T[number] extends infer TRoute ? TRoute extends FragnoRouteConfig<infer TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? string extends TPath ? true : HTTPMethod extends TMethod ? true : false : false : false;
26
49
  /**
27
50
  * Extract the path from a route configuration for a given method
28
51
  * @internal
29
52
  */
30
- type ExtractRoutePath<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer Method, infer Path, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string> ? Method extends TExpectedMethod ? Path : never : never }[number];
53
+ type ExtractRoutePath<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = [ExtractRoutePathExact<T, TExpectedMethod>] extends [never] ? HasWidenedRouteShape<T> extends true ? ExtractRoutePathLoose<T, TExpectedMethod> & string : never : ExtractRoutePathExact<T, TExpectedMethod>;
31
54
  /**
32
55
  * @internal
33
56
  */
34
- type ExtractGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractRoutePath<T, "GET">;
57
+ type ExtractGetRoutePaths<T extends readonly AnyFragnoRouteConfig[]> = ExtractRoutePath<T, "GET">;
35
58
  /**
36
59
  * @internal
37
60
  */
38
- type ExtractNonGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractRoutePath<T, NonGetHTTPMethod>;
61
+ type ExtractNonGetRoutePaths<T extends readonly AnyFragnoRouteConfig[]> = ExtractRoutePath<T, NonGetHTTPMethod>;
62
+ /**
63
+ * @internal
64
+ */
65
+ type ExtractRouteByPathExact<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer TRouteMethod, TPath$1, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? TRouteMethod extends TMethod$1 ? FragnoRouteConfig<TRouteMethod, TPath$1, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never : never }[number];
66
+ /**
67
+ * @internal
68
+ */
69
+ type ExtractRouteByPathLoose<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: FilterRouteByPath<FilterRouteByMethod<TRoutes[K], TMethod$1>, TPath$1> }[number];
39
70
  /**
40
71
  * Extract the route configuration type(s) for a given path from a routes array.
41
72
  * Optionally narrow by HTTP method via the third type parameter.
@@ -44,27 +75,29 @@ type ExtractNonGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, st
44
75
  * if multiple methods exist for the same path.
45
76
  * @internal
46
77
  */
47
- type ExtractRouteByPath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string, TMethod extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer M, TPath, infer Input, infer Output, infer ErrorCode, infer QueryParams> ? M extends TMethod ? FragnoRouteConfig<M, TPath, Input, Output, ErrorCode, QueryParams> : never : never }[number];
78
+ type ExtractRouteByPath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = [ExtractRouteByPathExact<TRoutes, TPath$1, TMethod$1>] extends [never] ? HasWidenedRouteShape<TRoutes> extends true ? ExtractRouteByPathLoose<TRoutes, TPath$1, TMethod$1> : never : ExtractRouteByPathExact<TRoutes, TPath$1, TMethod$1>;
48
79
  /**
49
80
  * Extract the output schema type for a specific route path from a routes array
50
81
  * @internal
51
82
  */
52
- type ExtractOutputSchemaForPath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined>[], TPath extends string> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer Method, TPath, StandardSchemaV1 | undefined, infer Output> ? Method extends "GET" ? Output : never : never }[number];
83
+ type ExtractOutputSchemaForPath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = ExtractRouteByPath<TRoutes, TPath$1, "GET"> extends {
84
+ outputSchema?: infer TOutputSchema;
85
+ } ? TOutputSchema : never;
53
86
  /**
54
87
  * Check if a path exists as a GET route in the routes array
55
88
  * @internal
56
89
  */
57
- type IsValidGetRoutePath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string> = TPath extends ExtractGetRoutePaths<TRoutes> ? true : false;
90
+ type IsValidGetRoutePath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = TPath$1 extends ExtractGetRoutePaths<TRoutes> ? true : false;
58
91
  /**
59
92
  * Utility type to ensure only valid GET route paths can be used
60
93
  * @internal
61
94
  */
62
- type ValidateGetRoutePath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string> = TPath extends ExtractGetRoutePaths<TRoutes> ? TPath : `Error: Path '${TPath}' is not a valid GET route. Available GET routes: ${ExtractGetRoutePaths<TRoutes>}`;
95
+ type ValidateGetRoutePath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = TPath$1 extends ExtractGetRoutePaths<TRoutes> ? TPath$1 : `Error: Path '${TPath$1}' is not a valid GET route. Available GET routes: ${ExtractGetRoutePaths<TRoutes>}`;
63
96
  /**
64
97
  * Helper type to check if a routes array has any GET routes
65
98
  * @internal
66
99
  */
67
- type HasGetRoutes<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractGetRoutePaths<T> extends never ? false : true;
100
+ type HasGetRoutes<T extends readonly AnyFragnoRouteConfig[]> = ExtractGetRoutePaths<T> extends never ? false : true;
68
101
  /**
69
102
  * @internal
70
103
  */
@@ -72,48 +105,53 @@ type ObjectContainingStoreField<T extends object> = T extends Store ? T : { [K i
72
105
  /**
73
106
  * @internal
74
107
  */
75
- type FragnoStoreData<T extends object> = {
108
+ type FragnoStoreObjectData<T extends object> = {
76
109
  obj: T;
77
110
  [STORE_SYMBOL]: true;
78
111
  };
79
- type FragnoClientHookData<TMethod extends HTTPMethod, TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = {
80
- route: FragnoRouteConfig<TMethod, TPath, StandardSchemaV1 | undefined, TOutputSchema, TErrorCode, TQueryParameters>;
112
+ type FragnoStoreFactoryData<T extends object, TArgs extends unknown[] = []> = {
113
+ factory: (...args: TArgs) => T;
114
+ [STORE_SYMBOL]: true;
115
+ };
116
+ type FragnoStoreData<T extends object, TArgs extends unknown[] = []> = FragnoStoreObjectData<T> | FragnoStoreFactoryData<T, TArgs>;
117
+ type FragnoClientHookData<TMethod$1 extends HTTPMethod, TPath$1 extends string, TOutputSchema$1 extends StandardSchemaV1, TErrorCode$1 extends string, TQueryParameters$1 extends string> = {
118
+ route: FragnoRouteConfig<TMethod$1, TPath$1, StandardSchemaV1 | undefined, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
81
119
  query(args?: {
82
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
83
- query?: Record<TQueryParameters, string | undefined>;
84
- }): Promise<StandardSchemaV1.InferOutput<TOutputSchema>>;
120
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
121
+ query?: Record<TQueryParameters$1, string | undefined>;
122
+ }): Promise<StandardSchemaV1.InferOutput<TOutputSchema$1>>;
85
123
  store(args?: {
86
- path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
87
- query?: Record<TQueryParameters, string | undefined | ReadableAtom<string | undefined>>;
88
- }): FetcherStore<StandardSchemaV1.InferOutput<TOutputSchema>, FragnoClientError<TErrorCode>>;
124
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | ReadableAtom<string>>;
125
+ query?: Record<TQueryParameters$1, string | undefined | ReadableAtom<string | undefined>>;
126
+ }): FetcherStore<StandardSchemaV1.InferOutput<TOutputSchema$1>, FragnoClientError<TErrorCode$1>>;
89
127
  [GET_HOOK_SYMBOL]: true;
90
128
  } & {
91
- readonly _outputSchema?: TOutputSchema;
129
+ readonly _outputSchema?: TOutputSchema$1;
92
130
  };
93
- type FragnoClientMutatorData<TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = {
94
- route: FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
131
+ type FragnoClientMutatorData<TMethod$1 extends NonGetHTTPMethod, TPath$1 extends string, TInputSchema$1 extends StandardSchemaV1 | undefined, TOutputSchema$1 extends StandardSchemaV1 | undefined, TErrorCode$1 extends string, TQueryParameters$1 extends string> = {
132
+ route: FragnoRouteConfig<TMethod$1, TPath$1, TInputSchema$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
95
133
  mutateQuery(args?: {
96
- body?: InferOr<TInputSchema, undefined>;
97
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
98
- query?: Record<TQueryParameters, string | undefined>;
99
- }): Promise<InferOr<TOutputSchema, undefined>>;
134
+ body?: InferOr<TInputSchema$1, undefined>;
135
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
136
+ query?: Record<TQueryParameters$1, string | undefined>;
137
+ }): Promise<InferOr<TOutputSchema$1, undefined>>;
100
138
  mutatorStore: MutatorStore<{
101
- body?: InferOr<TInputSchema, undefined>;
102
- path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
103
- query?: Record<TQueryParameters, string | undefined | ReadableAtom<string | undefined>>;
104
- }, InferOr<TOutputSchema, undefined>, FragnoClientError<TErrorCode>>;
139
+ body?: InferOr<TInputSchema$1, undefined>;
140
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | ReadableAtom<string>>;
141
+ query?: Record<TQueryParameters$1, string | undefined | ReadableAtom<string | undefined>>;
142
+ }, InferOr<TOutputSchema$1, undefined>, FragnoClientError<TErrorCode$1>>;
105
143
  [MUTATOR_HOOK_SYMBOL]: true;
106
144
  } & {
107
- readonly _inputSchema?: TInputSchema;
108
- readonly _outputSchema?: TOutputSchema;
145
+ readonly _inputSchema?: TInputSchema$1;
146
+ readonly _outputSchema?: TOutputSchema$1;
109
147
  };
110
148
  /**
111
149
  * @internal
112
150
  */
113
- declare function buildUrl<TPath extends string>(config: {
151
+ declare function buildUrl<TPath$1 extends string>(config: {
114
152
  baseUrl?: string;
115
153
  mountRoute: string;
116
- path: TPath;
154
+ path: TPath$1;
117
155
  }, params: {
118
156
  pathParams?: Record<string, string | ReadableAtom<string>>;
119
157
  queryParams?: Record<string, string | undefined | ReadableAtom<string | undefined>>;
@@ -129,22 +167,22 @@ declare function buildUrl<TPath extends string>(config: {
129
167
  * @returns
130
168
  * @internal
131
169
  */
132
- declare function getCacheKey<TMethod extends HTTPMethod, TPath extends string>(method: TMethod, path: TPath, params?: {
170
+ declare function getCacheKey<TMethod$1 extends HTTPMethod, TPath$1 extends string>(method: TMethod$1, path: TPath$1, params?: {
133
171
  pathParams?: Record<string, string | ReadableAtom<string>>;
134
172
  queryParams?: Record<string, string | undefined | ReadableAtom<string | undefined>>;
135
173
  }): (string | ReadableAtom<string>)[];
136
174
  /**
137
175
  * @internal
138
176
  */
139
- declare function isGetHook<TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string>(hook: unknown): hook is FragnoClientHookData<"GET", TPath, TOutputSchema, TErrorCode, TQueryParameters>;
177
+ declare function isGetHook<TPath$1 extends string, TOutputSchema$1 extends StandardSchemaV1, TErrorCode$1 extends string, TQueryParameters$1 extends string>(hook: unknown): hook is FragnoClientHookData<"GET", TPath$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
140
178
  /**
141
179
  * @internal
142
180
  */
143
- declare function isMutatorHook<TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string>(hook: unknown): hook is FragnoClientMutatorData<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
181
+ declare function isMutatorHook<TMethod$1 extends NonGetHTTPMethod, TPath$1 extends string, TInputSchema$1 extends StandardSchemaV1 | undefined, TOutputSchema$1 extends StandardSchemaV1 | undefined, TErrorCode$1 extends string, TQueryParameters$1 extends string>(hook: unknown): hook is FragnoClientMutatorData<TMethod$1, TPath$1, TInputSchema$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
144
182
  /**
145
183
  * @internal
146
184
  */
147
- declare function isStore<TStore extends Store>(obj: unknown): obj is FragnoStoreData<TStore>;
185
+ declare function isStore<TStore extends object, TArgs extends unknown[] = []>(obj: unknown): obj is FragnoStoreData<TStore, TArgs>;
148
186
  type OnErrorRetryFn = (opts: {
149
187
  error: unknown;
150
188
  key: string;
@@ -158,11 +196,11 @@ type CreateHookOptions = {
158
196
  */
159
197
  onErrorRetry?: OnErrorRetryFn | null;
160
198
  };
161
- type OnInvalidateFn<TPath extends string> = (invalidate: <TInnerPath extends string>(method: HTTPMethod, path: TInnerPath, params: {
199
+ type OnInvalidateFn<TPath$1 extends string> = (invalidate: <TInnerPath extends string>(method: HTTPMethod, path: TInnerPath, params: {
162
200
  pathParams?: MaybeExtractPathParamsOrWiden<TInnerPath, string>;
163
201
  queryParams?: Record<string, string>;
164
202
  }) => void, params: {
165
- pathParams: MaybeExtractPathParamsOrWiden<TPath, string>;
203
+ pathParams: MaybeExtractPathParamsOrWiden<TPath$1, string>;
166
204
  queryParams?: Record<string, string>;
167
205
  }) => void;
168
206
  /**
@@ -179,13 +217,14 @@ declare class ClientBuilder<TRoutes extends readonly FragnoRouteConfig<HTTPMetho
179
217
  #private;
180
218
  constructor(publicConfig: FragnoPublicClientConfig, fragmentConfig: TFragmentConfig);
181
219
  get cacheEntries(): Readonly<Record<string, CacheLine>>;
182
- createStore<const T extends object>(obj: T): FragnoStoreData<T>;
220
+ createStore<const TArgs extends unknown[], const T extends object>(factory: (...args: TArgs) => T): FragnoStoreFactoryData<T, TArgs>;
221
+ createStore<const T extends object>(obj: T): FragnoStoreObjectData<T>;
183
222
  /**
184
223
  * Build a URL for a custom backend call using the configured baseUrl and mountRoute.
185
224
  * Useful for fragment authors who need to make custom fetch calls.
186
225
  */
187
- buildUrl<TPath extends string>(path: TPath, params?: {
188
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
226
+ buildUrl<TPath$1 extends string>(path: TPath$1, params?: {
227
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
189
228
  query?: Record<string, string>;
190
229
  }): string;
191
230
  /**
@@ -196,16 +235,16 @@ declare class ClientBuilder<TRoutes extends readonly FragnoRouteConfig<HTTPMetho
196
235
  fetcher: typeof fetch;
197
236
  defaultOptions: RequestInit | undefined;
198
237
  };
199
- createHook<TPath extends ExtractGetRoutePaths<TFragmentConfig["routes"]>>(path: ValidateGetRoutePath<TFragmentConfig["routes"], TPath>, options?: CreateHookOptions): FragnoClientHookData<"GET", TPath, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath, "GET">["outputSchema"]>, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath, "GET">["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath, "GET">["queryParameters"]>[number]>;
200
- createMutator<TPath extends ExtractNonGetRoutePaths<TFragmentConfig["routes"]>>(method: NonGetHTTPMethod, path: TPath, onInvalidate?: OnInvalidateFn<TPath>): FragnoClientMutatorData<NonGetHTTPMethod,
238
+ createHook<TPath$1 extends ExtractGetRoutePaths<TFragmentConfig["routes"]>>(path: ValidateGetRoutePath<TFragmentConfig["routes"], TPath$1>, options?: CreateHookOptions): FragnoClientHookData<"GET", TPath$1, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["outputSchema"]>, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["queryParameters"]>[number]>;
239
+ createMutator<TPath$1 extends ExtractNonGetRoutePaths<TFragmentConfig["routes"]>>(method: NonGetHTTPMethod, path: TPath$1, onInvalidate?: OnInvalidateFn<TPath$1>): FragnoClientMutatorData<NonGetHTTPMethod,
201
240
  // TODO: This can be any Method, but should be related to TPath
202
- TPath, ExtractRouteByPath<TFragmentConfig["routes"], TPath>["inputSchema"], ExtractRouteByPath<TFragmentConfig["routes"], TPath>["outputSchema"], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["queryParameters"]>[number]>;
241
+ TPath$1, ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["inputSchema"], ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["outputSchema"], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["queryParameters"]>[number]>;
203
242
  }
204
243
  /**
205
244
  * Create a client builder for fragments using the new fragment definition API.
206
245
  * This is the same as createClientBuilder but works with FragmentDefinition.
207
246
  */
208
- declare function createClientBuilder<TConfig, TOptions extends FragnoPublicConfig, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext extends RequestThisContext, THandlerThisContext extends RequestThisContext, TRequestStorage, const TRoutesOrFactories extends readonly AnyRouteOrFactory[], TLinkedFragments extends Record<string, AnyFragnoInstantiatedFragment> = {}>(definition: FragmentDefinition<TConfig, TOptions, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext, THandlerThisContext, TRequestStorage, TLinkedFragments>, publicConfig: FragnoPublicClientConfig, routesOrFactories: TRoutesOrFactories, authorFetcherConfig?: FetcherConfig): ClientBuilder<FlattenRouteFactories<TRoutesOrFactories>, FragnoFragmentSharedConfig$1<FlattenRouteFactories<TRoutesOrFactories>>>;
247
+ declare function createClientBuilder<TConfig, TOptions extends FragnoPublicConfig, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext extends RequestThisContext, THandlerThisContext extends RequestThisContext, TRequestStorage, const TRoutesOrFactories extends readonly AnyRouteOrFactory[], TInternalRoutes extends readonly AnyRouteOrFactory[] = readonly []>(definition: FragmentDefinition<TConfig, TOptions, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext, THandlerThisContext, TRequestStorage, TInternalRoutes>, publicConfig: FragnoPublicClientConfig, routesOrFactories: TRoutesOrFactories, authorFetcherConfig?: FetcherConfig): ClientBuilder<FlattenRouteFactories<TRoutesOrFactories>, FragnoFragmentSharedConfig$1<FlattenRouteFactories<TRoutesOrFactories>>>;
209
248
  //#endregion
210
- export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, type FetcherConfig, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, type FragnoFragmentSharedConfig, type FragnoPublicClientConfig, FragnoStoreData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
249
+ export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, type FetcherConfig, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, type FragnoFragmentSharedConfig, type FragnoPublicClientConfig, FragnoStoreData, FragnoStoreFactoryData, FragnoStoreObjectData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
211
250
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","names":[],"sources":["../../src/client/client.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","names":[],"sources":["../../src/client/client.ts"],"sourcesContent":[],"mappings":"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"}