@venizia/ignis 0.0.8-9 → 0.0.9-1
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/dist/base/controllers/common/types.d.ts +24 -4
- package/dist/base/controllers/common/types.d.ts.map +1 -1
- package/dist/base/controllers/common/types.js.map +1 -1
- package/dist/base/controllers/factory/controller.d.ts +165 -111
- package/dist/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/base/controllers/factory/controller.js +67 -42
- package/dist/base/controllers/factory/controller.js.map +1 -1
- package/dist/base/controllers/factory/definition.d.ts +187 -115
- package/dist/base/controllers/factory/definition.d.ts.map +1 -1
- package/dist/base/controllers/factory/definition.js +17 -9
- package/dist/base/controllers/factory/definition.js.map +1 -1
- package/dist/base/middlewares/app-error.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/app-error.middleware.js +6 -2
- package/dist/base/middlewares/app-error.middleware.js.map +1 -1
- package/dist/base/middlewares/request-spy.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/request-spy.middleware.js +2 -1
- package/dist/base/middlewares/request-spy.middleware.js.map +1 -1
- package/dist/components/auth/authenticate/common/types.d.ts +8 -2
- package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.js +30 -4
- package/dist/components/auth/authenticate/controllers/factory.js.map +1 -1
- package/dist/components/health-check/controller.d.ts +1 -5
- package/dist/components/health-check/controller.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -3,9 +3,10 @@ import type { IAuthorizationSpec } from '../../../components/auth/authorize/comm
|
|
|
3
3
|
import { TAnyObjectSchema } from '../../../utilities/schema.utility';
|
|
4
4
|
import type { RouteConfig as HonoRouteConfig } from '@hono/zod-openapi';
|
|
5
5
|
import { createRoute, Hook, OpenAPIHono, z } from '@hono/zod-openapi';
|
|
6
|
-
import { IConfigurable, ValueOrPromise } from '@venizia/ignis-helpers';
|
|
6
|
+
import { AnyType, IConfigurable, ValueOrPromise } from '@venizia/ignis-helpers';
|
|
7
7
|
import type { TypedResponse } from 'hono';
|
|
8
8
|
import { Context, Env, Schema } from 'hono';
|
|
9
|
+
import { ContentfulStatusCode, StatusCode } from 'hono/utils/http-status';
|
|
9
10
|
/** Typed validation results for route handlers. */
|
|
10
11
|
export interface IValidRequestProps<JsonType = unknown, QueryType = unknown, ParamType = unknown, HeaderType = unknown, CookieType = unknown, FormType = unknown> {
|
|
11
12
|
json?: JsonType;
|
|
@@ -15,17 +16,29 @@ export interface IValidRequestProps<JsonType = unknown, QueryType = unknown, Par
|
|
|
15
16
|
cookie?: CookieType;
|
|
16
17
|
form?: FormType;
|
|
17
18
|
}
|
|
19
|
+
export type TJsonResponse<ResponseBody = unknown, ResponseStatusCode extends StatusCode = StatusCode> = Response & TypedResponse<ResponseBody, ResponseStatusCode, 'json'>;
|
|
20
|
+
/**
|
|
21
|
+
* Polymorphic response body for endpoints that honor the `x-request-count-data`
|
|
22
|
+
* header — returns either the count-wrapped shape `{ count, data }` or the raw
|
|
23
|
+
* payload `T`. Pass the unwrapped payload type as `T`; for arrays use
|
|
24
|
+
* `TCountResponse<TThing[]>`.
|
|
25
|
+
*/
|
|
26
|
+
export type TCountResponse<TData = unknown> = TData | {
|
|
27
|
+
count: number;
|
|
28
|
+
data: TData;
|
|
29
|
+
};
|
|
18
30
|
/** Lightweight typed context that bypasses RouteHandler inference. */
|
|
19
|
-
export type TContext<RouteEnv extends Env = Env, ValidTargetKey extends string = string> = Omit<Context<RouteEnv>, 'req'> & {
|
|
31
|
+
export type TContext<RouteEnv extends Env = Env, ValidTargetKey extends string = string, ResponseBody = unknown> = Omit<Context<RouteEnv>, 'req' | 'json'> & {
|
|
20
32
|
req: Omit<Context<RouteEnv>['req'], 'valid'> & {
|
|
21
33
|
valid<T = unknown>(target: ValidTargetKey): T;
|
|
22
34
|
};
|
|
35
|
+
json<StatusCode extends ContentfulStatusCode = 200>(body: ResponseBody, status?: StatusCode): TJsonResponse<ResponseBody, StatusCode>;
|
|
23
36
|
};
|
|
24
|
-
export type TRouteContext<RouteEnv extends Env = Env> = TContext<RouteEnv, keyof IValidRequestProps>;
|
|
37
|
+
export type TRouteContext<RouteEnv extends Env = Env, ResponseBody = unknown> = TContext<RouteEnv, keyof IValidRequestProps, ResponseBody>;
|
|
25
38
|
/** Casts middleware context to TContext (safe -- structurally identical to Context). */
|
|
26
39
|
export declare const asTypedContext: <E extends Env>(context: unknown) => TContext<E, string>;
|
|
27
40
|
/** Lightweight handler type using TTypedContext to avoid heavy RouteHandler inference. */
|
|
28
|
-
export type TRouteHandler<ResponseType = unknown, RouteEnv extends Env = Env> = (context: TRouteContext<RouteEnv>) => ValueOrPromise<Response | TypedResponse<ResponseType>>;
|
|
41
|
+
export type TRouteHandler<ResponseType = unknown, RouteEnv extends Env = Env> = (context: TRouteContext<RouteEnv, ResponseType>) => ValueOrPromise<Response | TypedResponse<ResponseType>>;
|
|
29
42
|
/** Registered route with its configuration and router instance. */
|
|
30
43
|
export interface IDefineRouteOptions<RouteConfig extends HonoRouteConfig, RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/'> {
|
|
31
44
|
configs: ReturnType<typeof createRoute<string, RouteConfig>>;
|
|
@@ -94,7 +107,13 @@ export type TResponseHeaderObject = {
|
|
|
94
107
|
};
|
|
95
108
|
/** OpenAPI response headers format */
|
|
96
109
|
export type TResponseHeaders = Record<string, TResponseHeaderObject>;
|
|
110
|
+
type TInferDistributive<S> = S extends z.ZodType ? z.infer<S> : never;
|
|
111
|
+
export type TResponseBodyOf<R extends {
|
|
112
|
+
responses: AnyType;
|
|
113
|
+
}> = TInferDistributive<R['responses'][keyof R['responses']]['content']['application/json']['schema']>;
|
|
97
114
|
export type TCustomizableRouteConfig = TRouteAuthConfig & {
|
|
115
|
+
/** Whether this route is registered. Defaults to true. */
|
|
116
|
+
enabled?: boolean;
|
|
98
117
|
request?: {
|
|
99
118
|
params?: TAnyObjectSchema;
|
|
100
119
|
query?: TAnyObjectSchema;
|
|
@@ -118,4 +137,5 @@ export interface ICustomizableRoutes<RouteConfig extends TCustomizableRouteConfi
|
|
|
118
137
|
deleteById?: RouteConfig;
|
|
119
138
|
deleteBy?: RouteConfig;
|
|
120
139
|
}
|
|
140
|
+
export {};
|
|
121
141
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/base/controllers/common/types.ts"],"names":[],"mappings":";;;AA2DA,wFAAwF;AACjF,MAAM,cAAc,GAAG,CAAgB,OAAgB,EAAuB,EAAE;IACrF,OAAO,OAA8B,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
|