@forklaunch/core 0.13.7 → 0.13.8

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.
@@ -1364,11 +1364,11 @@ type RouterMap<SV extends AnySchemaValidator> = {
1364
1364
  * // Results in: { api: { users: { getUser: () => Promise<{}> }, posts: { getPosts: () => Promise<[]> } } }
1365
1365
  * ```
1366
1366
  */
1367
- type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = {
1367
+ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = Prettify<{
1368
1368
  [K in keyof T]: T[K] extends {
1369
- sdk: infer S;
1370
- } ? S : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
1371
- };
1369
+ sdk: unknown;
1370
+ } ? T[K]['sdk'] : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
1371
+ }>;
1372
1372
  /**
1373
1373
  * Tail-recursive type that extracts and flattens fetch map interfaces from a RouterMap structure.
1374
1374
  * This version uses an accumulator pattern to avoid deep recursion and improve performance.
@@ -1393,8 +1393,8 @@ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extend
1393
1393
  */
1394
1394
  type MapToFetch<SV extends AnySchemaValidator, T extends RouterMap<SV>> = UnionToIntersection<Prettify<{
1395
1395
  [K in keyof T]: T[K] extends RouterMap<SV> ? MapToFetch<SV, T[K]> : T[K] extends {
1396
- _fetchMap: infer F;
1397
- } ? F extends Record<string, unknown> ? F : never : never;
1396
+ _fetchMap: unknown;
1397
+ } ? T[K]['_fetchMap'] extends Record<string, unknown> ? T[K]['_fetchMap'] : never : never;
1398
1398
  }[keyof T]>>;
1399
1399
  type CollectionOptimized<T> = T extends infer U ? U : never;
1400
1400
  /**
@@ -1486,14 +1486,14 @@ type ExtractLiveTypeFn<Entry extends SdkHandler, SV extends AnySchemaValidator,
1486
1486
  * // Results in properly typed fetch map with discriminated methods per path
1487
1487
  * ```
1488
1488
  */
1489
- type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = {
1489
+ type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = Prettify<{
1490
1490
  [K in keyof T as T[K]['_path'] extends infer P | undefined ? P extends `/${string}` ? `${RouterBasePath}${P}` : never : never]: {
1491
1491
  [M in T[K]['_method'] as M extends Method ? Uppercase<M> : never]: ExtractLiveTypeFn<Extract<T[K], {
1492
1492
  _path: T[K]['_path'];
1493
1493
  _method: M;
1494
1494
  }>, SV, RouterBasePath>;
1495
1495
  };
1496
- };
1496
+ }>;
1497
1497
 
1498
1498
  /**
1499
1499
  * A class that represents an Express-like router.
@@ -2053,8 +2053,74 @@ declare function sdkRouter<SV extends AnySchemaValidator, const T extends Record
2053
2053
  sdkPaths: Record<string, string>;
2054
2054
  }>(schemaValidator: SV, controller: T, router: Router): {
2055
2055
  sdk: MapControllerToSdk<SV, T>;
2056
- fetch: FetchFunction<ToFetchMap<T, SV, Router["basePath"] extends `/${string}` ? Router["basePath"] : "/">>;
2057
- _fetchMap: ToFetchMap<T, SV, Router["basePath"] extends `/${string}` ? Router["basePath"] : "/">;
2056
+ fetch: FetchFunction<{ [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
2057
+ _path: T[K_1]["_path"];
2058
+ _method: M;
2059
+ }>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
2060
+ _path: T[K_1]["_path"];
2061
+ _method: M;
2062
+ }>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
2063
+ _path: T[K_1]["_path"];
2064
+ _method: M;
2065
+ }>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
2066
+ _path: T[K_1]["_path"];
2067
+ _method: M;
2068
+ }>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
2069
+ _path: T[K_1]["_path"];
2070
+ _method: M;
2071
+ }>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
2072
+ _path: T[K_1]["_path"];
2073
+ _method: M;
2074
+ }>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2075
+ _path: T[K_1]["_path"];
2076
+ _method: M;
2077
+ }>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2078
+ _path: T[K_1]["_path"];
2079
+ _method: M;
2080
+ }>["_method"] extends Method ? Extract<T[K_1], {
2081
+ _path: T[K_1]["_path"];
2082
+ _method: M;
2083
+ }>["_method"] : never, Extract<T[K_1], {
2084
+ _path: T[K_1]["_path"];
2085
+ _method: M;
2086
+ }>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
2087
+ _path: T[K_1]["_path"];
2088
+ _method: M;
2089
+ }>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
2090
+ _fetchMap: { [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
2091
+ _path: T[K_1]["_path"];
2092
+ _method: M;
2093
+ }>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
2094
+ _path: T[K_1]["_path"];
2095
+ _method: M;
2096
+ }>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
2097
+ _path: T[K_1]["_path"];
2098
+ _method: M;
2099
+ }>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
2100
+ _path: T[K_1]["_path"];
2101
+ _method: M;
2102
+ }>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
2103
+ _path: T[K_1]["_path"];
2104
+ _method: M;
2105
+ }>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
2106
+ _path: T[K_1]["_path"];
2107
+ _method: M;
2108
+ }>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2109
+ _path: T[K_1]["_path"];
2110
+ _method: M;
2111
+ }>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2112
+ _path: T[K_1]["_path"];
2113
+ _method: M;
2114
+ }>["_method"] extends Method ? Extract<T[K_1], {
2115
+ _path: T[K_1]["_path"];
2116
+ _method: M;
2117
+ }>["_method"] : never, Extract<T[K_1], {
2118
+ _path: T[K_1]["_path"];
2119
+ _method: M;
2120
+ }>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
2121
+ _path: T[K_1]["_path"];
2122
+ _method: M;
2123
+ }>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never;
2058
2124
  sdkPaths: Router["sdkPaths"];
2059
2125
  };
2060
2126
 
@@ -1364,11 +1364,11 @@ type RouterMap<SV extends AnySchemaValidator> = {
1364
1364
  * // Results in: { api: { users: { getUser: () => Promise<{}> }, posts: { getPosts: () => Promise<[]> } } }
1365
1365
  * ```
1366
1366
  */
1367
- type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = {
1367
+ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = Prettify<{
1368
1368
  [K in keyof T]: T[K] extends {
1369
- sdk: infer S;
1370
- } ? S : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
1371
- };
1369
+ sdk: unknown;
1370
+ } ? T[K]['sdk'] : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
1371
+ }>;
1372
1372
  /**
1373
1373
  * Tail-recursive type that extracts and flattens fetch map interfaces from a RouterMap structure.
1374
1374
  * This version uses an accumulator pattern to avoid deep recursion and improve performance.
@@ -1393,8 +1393,8 @@ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extend
1393
1393
  */
1394
1394
  type MapToFetch<SV extends AnySchemaValidator, T extends RouterMap<SV>> = UnionToIntersection<Prettify<{
1395
1395
  [K in keyof T]: T[K] extends RouterMap<SV> ? MapToFetch<SV, T[K]> : T[K] extends {
1396
- _fetchMap: infer F;
1397
- } ? F extends Record<string, unknown> ? F : never : never;
1396
+ _fetchMap: unknown;
1397
+ } ? T[K]['_fetchMap'] extends Record<string, unknown> ? T[K]['_fetchMap'] : never : never;
1398
1398
  }[keyof T]>>;
1399
1399
  type CollectionOptimized<T> = T extends infer U ? U : never;
1400
1400
  /**
@@ -1486,14 +1486,14 @@ type ExtractLiveTypeFn<Entry extends SdkHandler, SV extends AnySchemaValidator,
1486
1486
  * // Results in properly typed fetch map with discriminated methods per path
1487
1487
  * ```
1488
1488
  */
1489
- type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = {
1489
+ type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = Prettify<{
1490
1490
  [K in keyof T as T[K]['_path'] extends infer P | undefined ? P extends `/${string}` ? `${RouterBasePath}${P}` : never : never]: {
1491
1491
  [M in T[K]['_method'] as M extends Method ? Uppercase<M> : never]: ExtractLiveTypeFn<Extract<T[K], {
1492
1492
  _path: T[K]['_path'];
1493
1493
  _method: M;
1494
1494
  }>, SV, RouterBasePath>;
1495
1495
  };
1496
- };
1496
+ }>;
1497
1497
 
1498
1498
  /**
1499
1499
  * A class that represents an Express-like router.
@@ -2053,8 +2053,74 @@ declare function sdkRouter<SV extends AnySchemaValidator, const T extends Record
2053
2053
  sdkPaths: Record<string, string>;
2054
2054
  }>(schemaValidator: SV, controller: T, router: Router): {
2055
2055
  sdk: MapControllerToSdk<SV, T>;
2056
- fetch: FetchFunction<ToFetchMap<T, SV, Router["basePath"] extends `/${string}` ? Router["basePath"] : "/">>;
2057
- _fetchMap: ToFetchMap<T, SV, Router["basePath"] extends `/${string}` ? Router["basePath"] : "/">;
2056
+ fetch: FetchFunction<{ [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
2057
+ _path: T[K_1]["_path"];
2058
+ _method: M;
2059
+ }>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
2060
+ _path: T[K_1]["_path"];
2061
+ _method: M;
2062
+ }>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
2063
+ _path: T[K_1]["_path"];
2064
+ _method: M;
2065
+ }>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
2066
+ _path: T[K_1]["_path"];
2067
+ _method: M;
2068
+ }>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
2069
+ _path: T[K_1]["_path"];
2070
+ _method: M;
2071
+ }>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
2072
+ _path: T[K_1]["_path"];
2073
+ _method: M;
2074
+ }>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2075
+ _path: T[K_1]["_path"];
2076
+ _method: M;
2077
+ }>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2078
+ _path: T[K_1]["_path"];
2079
+ _method: M;
2080
+ }>["_method"] extends Method ? Extract<T[K_1], {
2081
+ _path: T[K_1]["_path"];
2082
+ _method: M;
2083
+ }>["_method"] : never, Extract<T[K_1], {
2084
+ _path: T[K_1]["_path"];
2085
+ _method: M;
2086
+ }>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
2087
+ _path: T[K_1]["_path"];
2088
+ _method: M;
2089
+ }>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
2090
+ _fetchMap: { [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
2091
+ _path: T[K_1]["_path"];
2092
+ _method: M;
2093
+ }>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
2094
+ _path: T[K_1]["_path"];
2095
+ _method: M;
2096
+ }>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
2097
+ _path: T[K_1]["_path"];
2098
+ _method: M;
2099
+ }>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
2100
+ _path: T[K_1]["_path"];
2101
+ _method: M;
2102
+ }>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
2103
+ _path: T[K_1]["_path"];
2104
+ _method: M;
2105
+ }>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
2106
+ _path: T[K_1]["_path"];
2107
+ _method: M;
2108
+ }>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2109
+ _path: T[K_1]["_path"];
2110
+ _method: M;
2111
+ }>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
2112
+ _path: T[K_1]["_path"];
2113
+ _method: M;
2114
+ }>["_method"] extends Method ? Extract<T[K_1], {
2115
+ _path: T[K_1]["_path"];
2116
+ _method: M;
2117
+ }>["_method"] : never, Extract<T[K_1], {
2118
+ _path: T[K_1]["_path"];
2119
+ _method: M;
2120
+ }>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
2121
+ _path: T[K_1]["_path"];
2122
+ _method: M;
2123
+ }>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never;
2058
2124
  sdkPaths: Router["sdkPaths"];
2059
2125
  };
2060
2126
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/core",
3
- "version": "0.13.7",
3
+ "version": "0.13.8",
4
4
  "description": "forklaunch-js core package. Contains useful building blocks.",
5
5
  "homepage": "https://github.com/forklaunch/forklaunch-js#readme",
6
6
  "bugs": {
@@ -91,8 +91,8 @@
91
91
  "pino-pretty": "^13.1.1",
92
92
  "redis": "^5.8.2",
93
93
  "uuid": "^11.1.0",
94
- "@forklaunch/common": "0.5.6",
95
- "@forklaunch/validator": "0.9.7"
94
+ "@forklaunch/validator": "0.9.8",
95
+ "@forklaunch/common": "0.5.7"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@eslint/js": "^9.34.0",