@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.
- package/.turbo/turbo-build.log +72 -62
- package/CHANGELOG.md +28 -0
- package/dist/api/api.d.ts +3 -2
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/api.js +2 -1
- package/dist/api/api.js.map +1 -1
- package/dist/api/bind-services.d.ts +0 -1
- package/dist/api/bind-services.d.ts.map +1 -1
- package/dist/api/bind-services.js.map +1 -1
- package/dist/api/error.d.ts.map +1 -1
- package/dist/api/error.js.map +1 -1
- package/dist/api/fragment-definition-builder.d.ts +26 -44
- package/dist/api/fragment-definition-builder.d.ts.map +1 -1
- package/dist/api/fragment-definition-builder.js +15 -22
- package/dist/api/fragment-definition-builder.js.map +1 -1
- package/dist/api/fragment-instantiator.d.ts +51 -37
- package/dist/api/fragment-instantiator.d.ts.map +1 -1
- package/dist/api/fragment-instantiator.js +74 -69
- package/dist/api/fragment-instantiator.js.map +1 -1
- package/dist/api/request-context-storage.d.ts +4 -0
- package/dist/api/request-context-storage.d.ts.map +1 -1
- package/dist/api/request-context-storage.js +6 -0
- package/dist/api/request-context-storage.js.map +1 -1
- package/dist/api/request-input-context.d.ts.map +1 -1
- package/dist/api/request-input-context.js.map +1 -1
- package/dist/api/request-middleware.d.ts +1 -1
- package/dist/api/request-middleware.d.ts.map +1 -1
- package/dist/api/request-middleware.js.map +1 -1
- package/dist/api/request-output-context.d.ts +1 -1
- package/dist/api/request-output-context.d.ts.map +1 -1
- package/dist/api/request-output-context.js.map +1 -1
- package/dist/api/route-caller.d.ts +30 -0
- package/dist/api/route-caller.d.ts.map +1 -0
- package/dist/api/route-caller.js +63 -0
- package/dist/api/route-caller.js.map +1 -0
- package/dist/api/route-handler-input-options.d.ts.map +1 -1
- package/dist/api/route.d.ts +1 -1
- package/dist/api/route.d.ts.map +1 -1
- package/dist/api/route.js.map +1 -1
- package/dist/api/shared-types.d.ts.map +1 -1
- package/dist/client/client-error.d.ts.map +1 -1
- package/dist/client/client-error.js.map +1 -1
- package/dist/client/client.d.ts +91 -52
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +25 -9
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.svelte.d.ts +6 -5
- package/dist/client/client.svelte.d.ts.map +1 -1
- package/dist/client/client.svelte.js +10 -2
- package/dist/client/client.svelte.js.map +1 -1
- package/dist/client/internal/ndjson-streaming.js.map +1 -1
- package/dist/client/react.d.ts +5 -4
- package/dist/client/react.d.ts.map +1 -1
- package/dist/client/react.js +104 -12
- package/dist/client/react.js.map +1 -1
- package/dist/client/solid.d.ts +7 -5
- package/dist/client/solid.d.ts.map +1 -1
- package/dist/client/solid.js +23 -9
- package/dist/client/solid.js.map +1 -1
- package/dist/client/vanilla.d.ts +16 -4
- package/dist/client/vanilla.d.ts.map +1 -1
- package/dist/client/vanilla.js +21 -1
- package/dist/client/vanilla.js.map +1 -1
- package/dist/client/vue.d.ts +7 -5
- package/dist/client/vue.d.ts.map +1 -1
- package/dist/client/vue.js +18 -10
- package/dist/client/vue.js.map +1 -1
- package/dist/id.d.ts +2 -0
- package/dist/id.js +3 -0
- package/dist/internal/cuid.d.ts +16 -0
- package/dist/internal/cuid.d.ts.map +1 -0
- package/dist/internal/cuid.js +82 -0
- package/dist/internal/cuid.js.map +1 -0
- package/dist/mod-client.d.ts +5 -4
- package/dist/mod-client.d.ts.map +1 -1
- package/dist/mod-client.js +7 -5
- package/dist/mod-client.js.map +1 -1
- package/dist/mod.d.ts +6 -5
- package/dist/mod.js +2 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/test/test.d.ts +6 -6
- package/dist/test/test.d.ts.map +1 -1
- package/dist/test/test.js.map +1 -1
- package/dist/util/ssr.js.map +1 -1
- package/package.json +24 -40
- package/src/api/api.test.ts +3 -1
- package/src/api/api.ts +6 -0
- package/src/api/bind-services.ts +0 -5
- package/src/api/error.ts +1 -0
- package/src/api/fragment-definition-builder.extend.test.ts +2 -1
- package/src/api/fragment-definition-builder.test.ts +2 -1
- package/src/api/fragment-definition-builder.ts +49 -124
- package/src/api/fragment-instantiator.test.ts +92 -233
- package/src/api/fragment-instantiator.ts +228 -196
- package/src/api/fragment-services.test.ts +1 -0
- package/src/api/internal/path-runtime.test.ts +1 -0
- package/src/api/internal/path-type.test.ts +3 -1
- package/src/api/internal/route.test.ts +1 -0
- package/src/api/request-context-storage.ts +7 -0
- package/src/api/request-input-context.test.ts +4 -2
- package/src/api/request-input-context.ts +2 -1
- package/src/api/request-middleware.test.ts +9 -14
- package/src/api/request-middleware.ts +3 -2
- package/src/api/request-output-context.test.ts +3 -1
- package/src/api/request-output-context.ts +2 -1
- package/src/api/route-caller.test.ts +195 -0
- package/src/api/route-caller.ts +167 -0
- package/src/api/route-handler-input-options.ts +2 -1
- package/src/api/route.test.ts +4 -2
- package/src/api/route.ts +2 -1
- package/src/api/shared-types.ts +2 -1
- package/src/client/client-builder.test.ts +4 -2
- package/src/client/client-error.test.ts +2 -1
- package/src/client/client-error.ts +1 -1
- package/src/client/client-types.test.ts +19 -5
- package/src/client/client.ssr.test.ts +6 -4
- package/src/client/client.svelte.test.ts +18 -9
- package/src/client/client.svelte.ts +38 -13
- package/src/client/client.test.ts +49 -10
- package/src/client/client.ts +291 -141
- package/src/client/internal/ndjson-streaming.test.ts +6 -3
- package/src/client/internal/ndjson-streaming.ts +1 -0
- package/src/client/react.test.ts +176 -6
- package/src/client/react.ts +226 -31
- package/src/client/solid.test.ts +29 -5
- package/src/client/solid.ts +60 -22
- package/src/client/vanilla.test.ts +148 -6
- package/src/client/vanilla.ts +63 -9
- package/src/client/vue.test.ts +223 -84
- package/src/client/vue.ts +57 -30
- package/src/id.ts +1 -0
- package/src/internal/cuid.test.ts +164 -0
- package/src/internal/cuid.ts +133 -0
- package/src/mod-client.ts +4 -2
- package/src/mod.ts +3 -2
- package/src/runtime.ts +1 -1
- package/src/test/test.test.ts +4 -2
- package/src/test/test.ts +7 -9
- package/src/util/async.test.ts +1 -0
- package/src/util/content-type.test.ts +1 -0
- package/src/util/nanostores.test.ts +3 -1
- package/src/util/ssr.ts +1 -0
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +1 -0
- 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":";;;;;;;;
|
|
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"}
|
package/dist/api/route.d.ts
CHANGED
|
@@ -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
|
package/dist/api/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/api/route.ts"],"sourcesContent":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/api/route.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/api/route.js.map
CHANGED
|
@@ -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":";;;;;;;
|
|
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;;;;;
|
|
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,
|
|
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"}
|
package/dist/client/client.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
57
|
+
type ExtractGetRoutePaths<T extends readonly AnyFragnoRouteConfig[]> = ExtractRoutePath<T, "GET">;
|
|
35
58
|
/**
|
|
36
59
|
* @internal
|
|
37
60
|
*/
|
|
38
|
-
type ExtractNonGetRoutePaths<T extends readonly
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
108
|
+
type FragnoStoreObjectData<T extends object> = {
|
|
76
109
|
obj: T;
|
|
77
110
|
[STORE_SYMBOL]: true;
|
|
78
111
|
};
|
|
79
|
-
type
|
|
80
|
-
|
|
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
|
|
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>(
|
|
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[],
|
|
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":";;;;;;;;;;;;;;;;AAuCiG,cAU3F,eAA2C,EAAA,OAAA,MAAA;AAAA,cAC3C,mBAAmD,EAAA,OAAA,MAAA;AAAA,cACnD,YAAqC,EAAA,OAAA,MAAA;AAAA;;;KA2KtC,mBACY,CAAA,QAAA,EAAA,wBADwC,UACxC,CAAA,GAAf,QAAe,SAAA,iBAAA,CAAA,KAAA,QAAA,EAAA,KAAA,MAAA,EAAA,KAAA,aAAA,EAAA,KAAA,cAAA,EAAA,KAAA,WAAA,EAAA,KAAA,iBAAA,EAAA,KAAA,aAAA,CAAA,GAAA,CASV,OATU,CASF,OATE,EASO,eATP,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAUR,OAVQ,CAUA,eAVA,EAUiB,OAVjB,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAA,GAYP,iBAZO,CAaL,OAbK,EAcL,KAdK,EAeL,YAfK,EAgBL,aAhBK,EAiBL,UAjBK,EAkBL,gBAlBK,EAmBL,YAnBK,CAAA,GAqBT,iBArBS,CAsBP,OAtBO,EAuBP,KAvBO,EAwBP,YAxBO,EAyBP,aAzBO,EA0BP,UA1BO,EA2BP,gBA3BO,EA4BP,YA5BO,CAAA,GAAA,KAAA;;;;KAmCZ,iBAzBY,CAAA,QAAA,EAAA,gBAAA,MAAA,CAAA,GA0Bf,QA1Be,SA0BA,iBA1BA,CAAA,KAAA,QAAA,EAAA,KAAA,WAAA,EAAA,KAAA,aAAA,EAAA,KAAA,cAAA,EAAA,KAAA,WAAA,EAAA,KAAA,iBAAA,EAAA,KAAA,aAAA,CAAA,GAAA,CAmCV,OAnCU,CAmCF,UAnCE,EAmCU,OAnCV,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAoCR,OApCQ,CAoCA,OApCA,EAoCO,UApCP,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAA,GAsCP,iBAtCO,CAuCL,OAvCK,EAwCL,UAxCK,EAyCL,YAzCK,EA0CL,aA1CK,EA2CL,UA3CK,EA4CL,gBA5CK,EA6CL,YA7CK,CAAA,GA+CT,iBA/CS,CAgDP,OAhDO,EAiDP,UAjDO,EAkDP,YAlDO,EAmDP,aAnDO,EAoDP,UApDO,EAqDP,gBArDO,EAsDP,YAtDO,CAAA,GAAA,KAAA;;;;KA6DZ,qBAzDO,CAAA,UAAA,SAyDkC,oBAzDlC,EAAA,CAAA,GAAA,QACA,MAyDE,CAzDF,GAyDM,CAzDN,CAyDQ,CAzDR,CAAA,SAyDmB,iBAzDnB,CAAA,KAAA,QAAA,EAAA,KAAA,MAAA,EAAA,KAAA,aAAA,EAAA,KAAA,cAAA,EAAA,KAAA,WAAA,EAAA,KAAA,iBAAA,EAAA,KAAA,aAAA,CAAA,GAkEN,OAlEM,SAAA,KAAA,GAmEJ,iBAnEI,CAoEF,OApEE,EAqEF,KArEE,EAsEF,YAtEE,EAuEF,aAvEE,EAwEF,UAxEE,EAyEF,gBAzEE,EA0EF,YA1EE,CAAA,GAAA,KAAA,GAAA,KAAA,EACA,CAAA,MAAA,CAAA,EAAA;;;;;AAMF,KA6EE,gBA7EF,CAAA,UAAA,SA6EsC,oBA7EtC,EAAA,CAAA,GA6EgE,qBA7EhE,CA6EsF,CA7EtF,CAAA;;;;KAkFL,qBA9EK,CAAA,UAAA,SA+EW,oBA/EX,EAAA,EAAA,wBAgFgB,UAhFhB,GAgF6B,UAhF7B,CAAA,GAAA,QACA,MAiFI,CAjFJ,GAiFQ,CAjFR,CAiFU,CAjFV,CAAA,SAiFqB,iBAjFrB,CAAA,KAAA,QAAA,EAAA,KAAA,MAAA,EAoFN,gBApFM,GAAA,SAAA,EAqFN,gBArFM,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAwFN,kBAxFM,CAAA,GA0FJ,OA1FI,SA0FY,eA1FZ,GA2FF,KA3FE,GAAA,KAAA,GAAA,KAAA,EACA,CAAA,MAAA,CAAA;;;AAPe;KAyGpB,qBA1FH,CAAA,UAAA,SA2FmB,oBA3FnB,EAAA,EAAA,wBA4FwB,UA5FxB,GA4FqC,UA5FrC,CAAA,GAAA,QAAe,MA8FH,CA9FG,GA8FC,mBA9FD,CA8FqB,CA9FrB,CA8FuB,CA9FvB,CAAA,EA8F2B,eA9F3B,CAAA,SA8FoD,iBA9FpD,CAAA,KAAA,SAAA,EAAA,KAAA,MAAA,EAiGb,gBAjGa,GAAA,SAAA,EAkGb,gBAlGa,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAqGb,kBArGa,CAAA,GAuGX,KAvGW,GAAA,KAAA,EASF,CAAA,MAAA,CAAA;;;;KAqGV,oBApGmB,CAAA,UAAA,SAoGqB,oBApGrB,EAAA,CAAA,GAqGtB,CArGsB,CAAA,MAAA,CAAA,SAAA,KAAA,OAAA,GAsGlB,MAtGkB,SAsGH,iBAtGG,CAAA,KAAA,QAAA,EAAA,KAAA,MAAA,EAyGhB,gBAzGgB,GAAA,SAAA,EA0GhB,gBA1GgB,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EA6GhB,kBA7GgB,CAAA,GAAA,MAAA,SA+GD,KA/GC,GAAA,IAAA,GAiHd,UAjHc,SAiHK,OAjHL,GAAA,IAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA;;;;;AAMZ,KAqHA,gBArHA,CAAA,UAAA,SAsHS,oBAtHT,EAAA,EAAA,wBAuHc,UAvHd,GAuH2B,UAvH3B,CAAA,GAAA,CAwHP,qBAxHO,CAwHe,CAxHf,EAwHkB,eAxHlB,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAyHR,oBAzHQ,CAyHa,CAzHb,CAAA,SAAA,IAAA,GA0HN,qBA1HM,CA0HgB,CA1HhB,EA0HmB,eA1HnB,CAAA,GAAA,MAAA,GAAA,KAAA,GA4HR,qBA5HQ,CA4Hc,CA5Hd,EA4HiB,eA5HjB,CAAA;;;;AAJF,KAqIE,oBArIF,CAAA,UAAA,SAqI0C,oBArI1C,EAAA,CAAA,GAqIoE,gBArIpE,CAsIR,CAtIQ,EAAA,KAAA,CAAA;;;;AAaA,KAgIE,uBAhIF,CAAA,UAAA,SAgI6C,oBAhI7C,EAAA,CAAA,GAgIuE,gBAhIvE,CAiIR,CAjIQ,EAkIR,gBAlIQ,CAAA;;;;KAwIL,uBA5IG,CAAA,gBAAA,SA6ImB,oBA7InB,EAAA,EAAA,gBAAA,MAAA,EAAA,kBA+IU,UA/IV,GA+IuB,UA/IvB,CAAA,GAAA,QAAiB,MAiJX,OAjJW,GAiJD,OAjJC,CAiJO,CAjJP,CAAA,SAiJkB,iBAjJlB,CAAA,KAAA,aAAA,EAmJrB,OAnJqB,EAAA,KAAA,aAAA,EAAA,KAAA,cAAA,EAAA,KAAA,WAAA,EAAA,KAAA,iBAAA,EAAA,KAAA,aAAA,CAAA,GA0JnB,YA1JmB,SA0JE,SA1JF,GA2JjB,iBA3JiB,CA4Jf,YA5Je,EA6Jf,OA7Je,EA8Jf,YA9Je,EA+Jf,aA/Je,EAgKf,UAhKe,EAiKf,gBAjKe,EAkKf,YAlKe,CAAA,GAAA,KAAA,GAAA,KAAA,EAAA,CAAA,MAcpB,CAAA;;;;KA6JA,uBA5Je,CAAA,gBAAA,SA6JO,oBA7JP,EAAA,EAAA,gBAAA,MAAA,EAAA,kBA+JF,UA/JE,GA+JW,UA/JX,CAAA,GAAA,QAAW,MAiKjB,OAjKiB,GAiKP,iBAjKO,CAiKW,mBAjKX,CAiK+B,OAjK/B,CAiKuC,CAjKvC,CAAA,EAiK2C,SAjK3C,CAAA,EAiKqD,OAjKrD,CAAA,EASzB,CAAA,MAAA,CAAA;;;;;;;;;AACmB,KAkKb,kBAlKa,CAAA,gBAAA,SAmKE,oBAnKF,EAAA,EAAA,gBAAA,MAAA,EAAA,kBAqKP,UArKO,GAqKM,UArKN,CAAA,GAAA,CAsKpB,uBAtKoB,CAsKI,OAtKJ,EAsKa,OAtKb,EAsKoB,SAtKpB,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAuKrB,oBAvKqB,CAuKA,OAvKA,CAAA,SAAA,IAAA,GAwKnB,uBAxKmB,CAwKK,OAxKL,EAwKc,OAxKd,EAwKqB,SAxKrB,CAAA,GAAA,KAAA,GA0KrB,uBA1KqB,CA0KG,OA1KH,EA0KY,OA1KZ,EA0KmB,SA1KnB,CAAA;AAiBzB;;;;AAA+F,KA+JnF,0BA/JmF,CAAA,gBAAA,SAgKpE,oBAhKoE,EAAA,EAAA,gBAAA,MAAA,CAAA,GAmK7F,kBAnK6F,CAmK1E,OAnK0E,EAmKjE,OAnKiE,EAAA,KAAA,CAAA,SAAA;EAK1F,YAAA,CAAA,EAAA,KAAA,cAAqB;CACL,GAgKf,aAhKe,GAAA,KAAA;;;;;AAGD,KAoKR,mBApKQ,CAAA,gBAAA,SAqKO,oBArKP,EAAA,EAAA,gBAAA,MAAA,CAAA,GAuKhB,OAvKgB,SAuKF,oBAvKE,CAuKmB,OAvKnB,CAAA,GAAA,IAAA,GAAA,KAAA;;;;;AASd,KAoKM,oBApKN,CAAA,gBAAA,SAqKqB,oBArKrB,EAAA,EAAA,gBAAA,MAAA,CAAA,GAwKJ,OAxKI,SAwKU,oBAxKV,CAwK+B,OAxK/B,CAAA,GAyKA,OAzKA,GAAA,gBA0KgB,OA1KhB,qDA0K0E,oBA1K1E,CA0K+F,OA1K/F,CAAA,EAAA;;;;AACO;AASQ,KAsKT,YAtKS,CAAA,UAAA,SAsKuB,oBAtKvB,EAAA,CAAA,GAuKnB,oBAvKmB,CAuKE,CAvKF,CAAA,SAAA,KAAA,GAAA,KAAA,GAAA,IAAA;;;;AAGiB,KAyK1B,0BAzK0B,CAAA,UAAA,MAAA,CAAA,GAyKqB,CAzKrB,SAyK+B,KAzK/B,GA0KlC,CA1KkC,GAAA,QAAE,MA4KpB,CA5KoB,GA4KhB,CA5KgB,CA4Kd,CA5Kc,CAAA,SA4KH,KA5KG,GAAA,QA4Ka,CA5KT,GA4Ka,CA5Kb,CA4Ke,CA5Kf,CAAA,EAA1B,GA4KgD,OA5KhD,CA4KwD,IA5KxD,CA4K6D,CA5K7D,EA4KgE,CA5KhE,CAAA,CAAA,GAAA,KAAA,EAGd,CAAA,MA0KU,CA1KV,CAAA,SAAA,KAAA,GAAA,KAAA,GA4KE,CA5KF;;;;AAME,KA2KM,qBA3KN,CAAA,UAAA,MAAA,CAAA,GAAA;EAAK,GAAA,EA4KJ,CA5KI;EAON,CAsKF,YAAA,CAtKE,EAAA,IAAA;CAAwC;AAC3C,KAwKU,sBAxKV,CAAA,UAAA,MAAA,EAAA,cAAA,OAAA,EAAA,GAAA,EAAA,CAAA,GAAA;EACI,OAAA,EAAA,CAAA,GAAA,IAAA,EAwKe,KAxKf,EAAA,GAwKyB,CAxKzB;EAGE,CAsKL,YAAA,CAtKK,EAAA,IAAA;CACA;AAGA,KAqKI,eArKJ,CAAA,UAAA,MAAA,EAAA,cAAA,OAAA,EAAA,GAAA,EAAA,CAAA,GAsKJ,qBAtKI,CAsKkB,CAtKlB,CAAA,GAuKJ,sBAvKI,CAuKmB,CAvKnB,EAuKsB,KAvKtB,CAAA;AAPa,KAgLT,oBAhLS,CAAA,kBAiLH,UAjLG,EAAA,gBAAA,MAAA,EAAA,wBAmLG,gBAnLH,EAAA,qBAAA,MAAA,EAAA,2BAAA,MAAA,CAAA,GAAA;EASE,KAAA,EA8Kd,iBA9Kc,CA+KnB,SA/KmB,EAgLnB,OAhLmB,EAiLnB,gBAjLmB,GAAA,SAAA,EAkLnB,eAlLmB,EAmLnB,YAnLmB,EAoLnB,kBApLmB,CAAA;EAEb,KAAA,CAAA,IAUE,CAVF,EAAA;IAAmB,IAAA,CAAA,EAqLlB,6BArLkB,CAqLY,OArLZ,EAAA,MAAA,CAAA;IAAO,KAAA,CAAA,EAsLxB,MAtLwB,CAsLjB,kBAtLiB,EAAA,MAAA,GAAA,SAAA,CAAA;EAUxB,CAAA,CAAA,EA6KN,OA7KM,CA6KE,gBAAA,CAAiB,WA7KH,CA6Ke,eA7Kf,CAAA,CAAA;EACP,KAAA,CAAA,IAEM,CAFN,EAAA;IACK,IAAA,CAAA,EA6Kf,6BA7Ke,CA6Ke,OA7Kf,EAAA,MAAA,GA6K+B,YA7K/B,CAAA,MAAA,CAAA,CAAA;IAAa,KAAA,CAAA,EA8K3B,MA9K2B,CA8KpB,kBA9KoB,EAAA,MAAA,GAAA,SAAA,GA8KmB,YA9KnB,CAAA,MAAA,GAAA,SAAA,CAAA,CAAA;EACZ,CAAA,CAAA,EA8KrB,YA9KqB,CA8KR,gBAAA,CAAiB,WA9KT,CA8KqB,eA9KrB,CAAA,EA8KqC,iBA9KrC,CA8KuD,YA9KvD,CAAA,CAAA;EAAG,CA+K3B,eAAA,CA/K2B,EAAA,IAAA;CAAzB,GAAA;EACoB,SAAA,aAAA,CAAA,EAoLE,eApLF;CAArB;AACwB,KAsLhB,uBAtLgB,CAAA,kBAuLV,gBAvLU,EAAA,gBAAA,MAAA,EAAA,uBAyLL,gBAzLK,GAAA,SAAA,EAAA,wBA0LJ,gBA1LI,GAAA,SAAA,EAAA,qBAAA,MAAA,EAAA,2BAAA,MAAA,CAAA,GAAA;EAAG,KAAA,EA8LtB,iBA9LsB,CA+L3B,SA/L2B,EAgM3B,OAhM2B,EAiM3B,cAjM2B,EAkM3B,eAlM2B,EAmM3B,YAnM2B,EAoM3B,kBApM2B,CAAA;EAAzB,WAAA,CAAA,IAEmB,CAFnB,EAAA;IAEoB,IAAA,CAAA,EAsMf,OAtMe,CAsMP,cAtMO,EAAA,SAAA,CAAA;IAAG,IAAA,CAAA,EAuMlB,6BAvMkB,CAuMY,OAvMZ,EAAA,MAAA,CAAA;IAAzB,KAAA,CAAA,EAwMQ,MAxMR,CAwMe,kBAxMf,EAAA,MAAA,GAAA,SAAA,CAAA;EAAqB,CAAA,CAAA,EAyMnB,OAzMmB,CAyMX,OAzMW,CAyMH,eAzMG,EAAA,SAAA,CAAA,CAAA;EAKb,YAAA,EAsMI,YAtMgB,CAAA;IAAoB,IAAA,CAAA,EAwMvC,OAxMuC,CAwM/B,cAxM+B,EAAA,SAAA,CAAA;IAClD,IAAA,CAAA,EAwMW,6BAxMX,CAwMyC,OAxMzC,EAAA,MAAA,GAwMyD,YAxMzD,CAAA,MAAA,CAAA,CAAA;IAD4E,KAAA,CAAA,EA0MhE,MA1MgE,CA0MzD,kBA1MyD,EAAA,MAAA,GAAA,SAAA,GA0MlB,YA1MkB,CAAA,MAAA,GAAA,SAAA,CAAA,CAAA;EAAgB,CAAA,EA4M1F,OA5M0F,CA4MlF,eA5MkF,EAAA,SAAA,CAAA,EA6M1F,iBA7M0F,CA6MxE,YA7MwE,CAAA,CAAA;EAQlF,CAuMT,mBAAA,CAvMS,EAAA,IAAuB;CAAoB,GAAA;EACrD,SAAA,YAAA,CAAA,EAwMwB,cAxMxB;EACA,SAAA,aAAA,CAAA,EAwMyB,eAxMzB;CAF+E;;AAG/E;;AAQgB,iBAqMF,QArME,CAAA,gBAAA,MAAA,CAAA,CAAA,MAAA,EAAA;EAAa,OAAA,CAAA,EAAA,MAAA;EAEjB,UAAA,EAAA,MAAA;EAAU,IAAA,EAuMd,OAvMc;CAAQ,EAAA,MAAA,EAAA;EAE5B,UAAA,CAAA,EAwMa,MAxMb,CAAA,MAAA,EAAA,MAAA,GAwMqC,YAxMrC,CAAA,MAAA,CAAA,CAAA;EAFuC,WAAA,CAAA,EA2MzB,MA3MyB,CAAA,MAAA,EAAA,MAAA,GAAA,SAAA,GA2MW,YA3MX,CAAA,MAAA,GAAA,SAAA,CAAA,CAAA;CASrC,CAAA,EAAA,MAAA;;;;;;;;;;;AACmB;AAiBE,iBA+MX,WA/MW,CAAA,kBA+MiB,UA/MjB,EAAA,gBAAA,MAAA,CAAA,CAAA,MAAA,EAgNjB,SAhNiB,EAAA,IAAA,EAiNnB,OAjNmB,EAAA,MAIb,CAJa,EAAA;EAET,UAAA,CAAA,EAiND,MAjNC,CAAA,MAAA,EAAA,MAAA,GAiNuB,YAjNvB,CAAA,MAAA,CAAA,CAAA;EAAa,WAAA,CAAA,EAkNb,MAlNa,CAAA,MAAA,EAAA,MAAA,GAAA,SAAA,GAkNuB,YAlNvB,CAAA,MAAA,GAAA,SAAA,CAAA,CAAA;CAEjB,CAAA,EAAA,CAAA,MAAA,GAkND,YAlNC,CAAA,MAAA,CAAA,CAAA,EAAA;;;;AAA4B,iBA2Q1B,SA3Q0B,CAAA,gBAAA,MAAA,EAAA,wBA6QlB,gBA7QkB,EAAA,qBAAA,MAAA,EAAA,2BAAA,MAAA,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAA,IAAA,IAkR/B,oBAlR+B,CAAA,KAAA,EAkRH,OAlRG,EAkRI,eAlRJ,EAkRmB,YAlRnB,EAkR+B,kBAlR/B,CAAA;;;;AAW9B,iBAoRI,aApRc,CAAA,kBAqRZ,gBArRY,EAAA,gBAAA,MAAA,EAAA,uBAuRP,gBAvRO,GAAA,SAAA,EAAA,wBAwRN,gBAxRM,GAAA,SAAA,EAAA,qBAAA,MAAA,EAAA,2BAAA,MAAA,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAA,IAAA,IA6RnB,uBA7RmB,CA8R5B,SA9R4B,EA+R5B,OA/R4B,EAgS5B,cAhS4B,EAiS5B,eAjS4B,EAkS5B,YAlS4B,EAmS5B,kBAnS4B,CAAA;;;;AAID,iBA4Sb,OA5Sa,CAAA,eAAA,MAAA,EAAA,cAAA,OAAA,EAAA,GAAA,EAAA,CAAA,CAAA,GAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IA8SnB,eA9SmB,CA8SH,MA9SG,EA8SK,KA9SL,CAAA;KAoTxB,cAAA,GApTiC,CAAA,IAAA,EAAA;EAAO,KAAA,EAAA,OAAA;EAAxC,GAAA,EAAA,MAAA;EACoB,UAAA,EAAA,MAAA;CAArB,EAAA,GAAA,MAAA,GAAA,SAAA;AAC0B,KAwTlB,iBAAA,GAxTkB;EAAS;;;;;EAEK,YAAA,CAAA,EA4T3B,cA5T2B,GAAA,IAAA;CAAxC;KA+TC,cA/TsB,CAAA,gBAAA,MAAA,CAAA,GAAA,CAAA,UAAA,EAAA,CAAA,mBAAA,MAAA,CAAA,CAAA,MAAA,EAiUf,UAjUe,EAAA,IAAA,EAkUjB,UAlUiB,EAAA,MAAA,EAAA;EAMf,UAAA,CAAA,EA8TO,6BA9TmB,CA8TW,UA9TX,EAAA,MAAA,CAAA;EACX,WAAA,CAAA,EA8TP,MA9TO,CAAA,MAAA,EAAA,MAAA,CAAA;CAGN,EAAA,GAAA,IAAA,EAAA,MAAA,EAAA;EAAS,UAAA,EA+Td,6BA/Tc,CA+TgB,OA/ThB,EAAA,MAAA,CAAA;EAA5B,WAAA,CAAA,EAgUgB,MAhUhB,CAAA,MAAA,EAAA,MAAA,CAAA;CAGI,EAAA,GAAA,IAAA;;AAON;;AAGI,KA0TQ,SAAA,GA1TR;EAAmC,IAAA,EAAA,OAAA;EAArB,KAAA,EAAA,OAAA;EAAoB,UAAA,EAAA,MAAA;EAM1B,OAAA,EAAA,MAAA;EACe,OAAA,EAAA,MAAA;CAGzB;AAAmC,cAwTxB,aAxTwB,CAAA,gBAAA,SAyTV,iBAzTU,CA0TjC,UA1TiC,EAAA,MAAA,EA4TjC,gBA5TiC,GAAA,SAAA,EA6TjC,gBA7TiC,GAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,wBAiUX,4BAjUW,CAiUgB,OAjUhB,CAAA,CAAA,CAAA;EAArB,CAAA,OAAA;EACV,WAAA,CAAA,YAAA,EA4UsB,wBA5UtB,EAAA,cAAA,EA4UgE,eA5UhE;EACgB,IAAA,YAAA,CAAA,CAAA,EAwVA,QAxVA,CAwVS,MAxVT,CAAA,MAAA,EAwVwB,SAxVxB,CAAA,CAAA;EAA+E,WAAA,CAAA,oBAAA,OAAA,EAAA,EAAA,gBAAA,MAAA,CAAA,CAAA,OAAA,EAAA,CAAA,GAAA,IAAA,EA6V9E,KA7V8E,EAAA,GA6VpE,CA7VoE,CAAA,EA8VhG,sBA9VgG,CA8VzE,CA9VyE,EA8VtE,KA9VsE,CAAA;EAArB,WAAA,CAAA,gBAAA,MAAA,CAAA,CAAA,GAAA,EA+VrC,CA/VqC,CAAA,EA+VjC,qBA/ViC,CA+VX,CA/VW,CAAA;EAAoB;AAMpG;;;EACE,QAAA,CAAA,gBAAA,MAAA,CAAA,CAAA,IAAA,EAwWQ,OAxWR,EAAA,MAKyD,CALzD,EAAA;IAAoB,IAAA,CAAA,EA0WT,6BA1WS,CA0WqB,OA1WrB,EAAA,MAAA,CAAA;IAKV,KAAA,CAAA,EAsWE,MAtWF,CAAA,MAAA,EAAA,MAA0B,CAAA;EAAqB,CAAA,CAAA,EAAA,MAAA;EAAU;;;;EAG3C,UAAA,CAAA,CAAA,EAAA;IAAW,OAAA,EAAA,OAuXjB,KAvXiB;IAAgB,cAAA,EAwXjC,WAxXiC,GAAA,SAAA;EAAI,CAAA;EAAE,UAAA,CAAA,gBA8YhC,oBA9YgC,CA8YX,eA9YW,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EA+YjD,oBA/YiD,CA+Y5B,eA/Y4B,CAAA,QAAA,CAAA,EA+YD,OA/YC,CAAA,EAAA,OAAA,CAAA,EAgZ7C,iBAhZ6C,CAAA,EAiZtD,oBAjZsD,CAAA,KAAA,EAmZvD,OAnZuD,EAoZvD,WApZuD,CAoZ3C,kBApZ2C,CAoZxB,eApZwB,CAAA,QAAA,CAAA,EAoZG,OApZH,EAAA,KAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAqZvD,WArZuD,CAqZ3C,kBArZ2C,CAqZxB,eArZwB,CAAA,QAAA,CAAA,EAqZG,OArZH,EAAA,KAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAsZvD,WAtZuD,CAuZrD,kBAvZqD,CAuZlC,eAvZkC,CAAA,QAAA,CAAA,EAuZP,OAvZO,EAAA,KAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA;EAAoB,aAAA,CAAA,gBA8ajD,uBA9aiD,CA8azB,eA9ayB,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EA+anE,gBA/amE,EAAA,IAAA,EAgbrE,OAhbqE,EAAA,YAAA,CAAA,EAib5D,cAjb4D,CAib7C,OAjb6C,CAAA,CAAA,EAkb1E,uBAlb0E,CAmb3E,gBAnb2E;EAAA;EAob3E,OApb8E,EAqb9E,kBArb8E,CAqb3D,eArb2D,CAAA,QAAA,CAAA,EAqbhC,OArbgC,CAAA,CAAA,aAAA,CAAA,EAsb9E,kBAtb8E,CAsb3D,eAtb2D,CAAA,QAAA,CAAA,EAsbhC,OAtbgC,CAAA,CAAA,cAAA,CAAA,EAub9E,WAvb8E,CAublE,kBAvbkE,CAub/C,eAvb+C,CAAA,QAAA,CAAA,EAubpB,OAvboB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAwb9E,WAxb8E,CAwblE,kBAxbkE,CAwb/C,eAxb+C,CAAA,QAAA,CAAA,EAwbpB,OAxboB,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA;;;;;;AAQtE,iBA24BI,mBA14BT,CACJ,OAAA,EAAA,iBA24BgB,kBA34BJ,EAAA,KAAA,EAAA,aAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,4BAi5Be,kBAj5Bf,EAAA,4BAk5Be,kBAl5Bf,EAAA,eAAA,EAAA,iCAAA,SAo5B6B,iBAp5B7B,EAAA,EAAA,wBAAA,SAq5BoB,iBAr5BpB,EAAA,GAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAu5BD,kBAv5BC,CAw5BX,OAx5BW,EAy5BX,QAz5BW,EA05BX,KA15BW,EA25BX,aA35BW,EA45BX,SA55BW,EA65BX,oBA75BW,EA85BX,gBA95BW,EA+5BX,mBA/5BW,EAg6BX,mBAh6BW,EAi6BX,eAj6BW,EAk6BX,eAl6BW,CAAA,EAAA,YAAA,EAo6BC,wBAp6BD,EAAA,iBAAA,EAq6BM,kBAr6BN,EAAA,mBAAA,CAAA,EAs6BS,aAt6BT,CAAA,EAu6BZ,aAv6BY,CAw6Bb,qBAx6Ba,CAw6BS,kBAx6BT,CAAA,EAy6Bb,4BAz6Ba,CAy6Bc,qBAz6Bd,CAy6BoC,kBAz6BpC,CAAA,CAAA,CAAA"}
|