@forinda/kickjs 6.4.0 → 6.5.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/{adapter-BjxEv8oW.d.mts → adapter-CbMq-NBf.d.mts} +95 -341
- package/dist/adapter-CbMq-NBf.d.mts.map +1 -0
- package/dist/{app-module-BwYtACD6.d.mts → app-module-DtoySG6l.d.mts} +153 -31
- package/dist/app-module-DtoySG6l.d.mts.map +1 -0
- package/dist/application-Cl0JlmNY.mjs +12 -0
- package/dist/application-Cl0JlmNY.mjs.map +1 -0
- package/dist/{application-Bo3jSfmL.d.mts → application-zlzYGgKD.d.mts} +6 -6
- package/dist/application-zlzYGgKD.d.mts.map +1 -0
- package/dist/{bootstrap-DW2yzKh6.mjs → bootstrap-DzyWLYpU.mjs} +3 -3
- package/dist/{bootstrap-DW2yzKh6.mjs.map → bootstrap-DzyWLYpU.mjs.map} +1 -1
- package/dist/{bootstrap-DUUxZXvF.d.mts → bootstrap-Nzgi7K2d.d.mts} +2 -3
- package/dist/bootstrap-Nzgi7K2d.d.mts.map +1 -0
- package/dist/{cache-CwZzIH0D.d.mts → cache-C0qL0NSD.d.mts} +2 -1
- package/dist/cache-C0qL0NSD.d.mts.map +1 -0
- package/dist/config/index.d.mts +1 -1
- package/dist/config/index.mjs +2 -2
- package/dist/{config-BTDTXaeZ.mjs → config-CwFPFwsN.mjs} +3 -3
- package/dist/{config-BTDTXaeZ.mjs.map → config-CwFPFwsN.mjs.map} +1 -1
- package/dist/{container-iED1swkd.d.mts → container-BW_MlgLj.d.mts} +3 -2
- package/dist/container-BW_MlgLj.d.mts.map +1 -0
- package/dist/{container-Da9BLMHy.mjs → container-C7kmdVwh.mjs} +3 -3
- package/dist/{container-Da9BLMHy.mjs.map → container-C7kmdVwh.mjs.map} +1 -1
- package/dist/context-DQaUwwQM.mjs +12 -0
- package/dist/context-DQaUwwQM.mjs.map +1 -0
- package/dist/context-errors-97x9siRx.mjs +13 -0
- package/dist/context-errors-97x9siRx.mjs.map +1 -0
- package/dist/core/adapter.d.mts +1 -1
- package/dist/core/adapter.mjs +1 -1
- package/dist/core/app-module.d.mts +1 -1
- package/dist/core/app-module.mjs +1 -1
- package/dist/core/cache.d.mts +1 -1
- package/dist/core/cache.mjs +1 -1
- package/dist/core/container.d.mts +1 -1
- package/dist/core/container.mjs +2 -2
- package/dist/core/cron.mjs +2 -2
- package/dist/core/decorators.d.mts +1 -1
- package/dist/core/decorators.mjs +2 -2
- package/dist/core/errors.d.mts +1 -1
- package/dist/core/errors.mjs +1 -1
- package/dist/core/interfaces.d.mts +1 -1
- package/dist/core/interfaces.mjs +1 -1
- package/dist/core/logger.d.mts +2 -2
- package/dist/core/logger.mjs +2 -2
- package/dist/core/logger.mjs.map +1 -1
- package/dist/core/path.mjs +1 -1
- package/dist/core/plugin.d.mts +1 -1
- package/dist/core/plugin.mjs +1 -1
- package/dist/core/reactivity.d.mts +1 -1
- package/dist/core/reactivity.mjs +1 -1
- package/dist/core-CLmwVWlw.mjs +12 -0
- package/dist/core-CLmwVWlw.mjs.map +1 -0
- package/dist/{cors-C4aSCD3J.d.mts → cors-BuDU9CpA.d.mts} +1 -2
- package/dist/cors-BuDU9CpA.d.mts.map +1 -0
- package/dist/cron-DOOtTY4q.d.mts.map +1 -1
- package/dist/{csrf-Dlo-P8Il.mjs → csrf-BsrsObK-.mjs} +2 -2
- package/dist/{csrf-Dlo-P8Il.mjs.map → csrf-BsrsObK-.mjs.map} +1 -1
- package/dist/{csrf-7nUXGTuz.d.mts → csrf-vR23CJas.d.mts} +1 -2
- package/dist/csrf-vR23CJas.d.mts.map +1 -0
- package/dist/{decorators-wEJBqXHg.d.mts → decorators-Bks7cgBJ.d.mts} +12 -7
- package/dist/decorators-Bks7cgBJ.d.mts.map +1 -0
- package/dist/{disposables-rPSyh69r.mjs → disposables-D46xX96x.mjs} +2 -2
- package/dist/{disposables-rPSyh69r.mjs.map → disposables-D46xX96x.mjs.map} +1 -1
- package/dist/env-Biq_60jq.mjs +13 -0
- package/dist/{env-Ce-aYRxQ.mjs.map → env-Biq_60jq.mjs.map} +1 -1
- package/dist/{error-handler-3ih4E-QZ.d.mts → error-handler-Cr6Yt9as.d.mts} +5 -2
- package/dist/error-handler-Cr6Yt9as.d.mts.map +1 -0
- package/dist/{errors-n0H96eEz.d.mts → errors-By6UueCm.d.mts} +18 -9
- package/dist/errors-By6UueCm.d.mts.map +1 -0
- package/dist/handler-Ci1NMv-9.mjs +13 -0
- package/dist/handler-Ci1NMv-9.mjs.map +1 -0
- package/dist/{helmet-CKzZzeNl.d.mts → helmet-CFQUTVig.d.mts} +1 -2
- package/dist/helmet-CFQUTVig.d.mts.map +1 -0
- package/dist/http/application.d.mts +1 -1
- package/dist/http/application.mjs +2 -2
- package/dist/http/bootstrap.d.mts +1 -1
- package/dist/http/bootstrap.mjs +2 -2
- package/dist/http/context.d.mts +2 -2
- package/dist/http/context.mjs +2 -2
- package/dist/http/middleware/cors.d.mts +1 -1
- package/dist/http/middleware/cors.mjs +1 -1
- package/dist/http/middleware/csrf.d.mts +1 -1
- package/dist/http/middleware/csrf.mjs +2 -2
- package/dist/http/middleware/error-handler.d.mts +1 -1
- package/dist/http/middleware/error-handler.mjs +3 -2
- package/dist/http/middleware/error-handler.mjs.map +1 -1
- package/dist/http/middleware/helmet.d.mts +1 -1
- package/dist/http/middleware/helmet.mjs +1 -1
- package/dist/http/middleware/rate-limit.d.mts +1 -1
- package/dist/http/middleware/rate-limit.mjs +2 -2
- package/dist/http/middleware/request-id.d.mts +1 -1
- package/dist/http/middleware/request-id.mjs +1 -1
- package/dist/http/middleware/request-logger.d.mts +1 -1
- package/dist/http/middleware/request-logger.mjs +2 -2
- package/dist/http/middleware/session.d.mts +1 -1
- package/dist/http/middleware/session.mjs +2 -2
- package/dist/http/middleware/spa.d.mts +1 -1
- package/dist/http/middleware/spa.mjs +2 -2
- package/dist/http/middleware/spa.mjs.map +1 -1
- package/dist/http/middleware/upload.d.mts +1 -1
- package/dist/http/middleware/upload.mjs +2 -2
- package/dist/http/middleware/upload.mjs.map +1 -1
- package/dist/http/middleware/validate.d.mts +1 -1
- package/dist/http/middleware/validate.mjs +1 -1
- package/dist/http/middleware/views.d.mts +1 -1
- package/dist/http/middleware/views.mjs +2 -3
- package/dist/http/query/index.d.mts +1 -1
- package/dist/http/query/index.mjs +2 -2
- package/dist/http/router-builder.d.mts +1 -1
- package/dist/http/router-builder.mjs +2 -3
- package/dist/http/runtimes/fastify.d.mts +1 -2
- package/dist/http/runtimes/fastify.d.mts.map +1 -1
- package/dist/http/runtimes/fastify.mjs +3 -3
- package/dist/http/runtimes/fastify.mjs.map +1 -1
- package/dist/http/runtimes/h3-web.d.mts +1 -2
- package/dist/http/runtimes/h3-web.d.mts.map +1 -1
- package/dist/http/runtimes/h3-web.mjs +2 -2
- package/dist/http/runtimes/h3-web.mjs.map +1 -1
- package/dist/http/runtimes/h3.d.mts +1 -2
- package/dist/http/runtimes/h3.d.mts.map +1 -1
- package/dist/http/runtimes/h3.mjs +2 -2
- package/dist/{index-BtWJ9SLP.d.mts → index-BfT5KZ-M.d.mts} +2 -2
- package/dist/index-BfT5KZ-M.d.mts.map +1 -0
- package/dist/{index-D98NLfS5.d.mts → index-M6TF75MS.d.mts} +2 -3
- package/dist/index-M6TF75MS.d.mts.map +1 -0
- package/dist/index.d.mts +28 -28
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/{interfaces-CayXPOAf.d.mts → interfaces-BTTBdkvG.d.mts} +3 -2
- package/dist/interfaces-BTTBdkvG.d.mts.map +1 -0
- package/dist/{kv-stores-CAYc5VKm.mjs → kv-stores-BLJdf3Fn.mjs} +2 -2
- package/dist/{kv-stores-CAYc5VKm.mjs.map → kv-stores-BLJdf3Fn.mjs.map} +1 -1
- package/dist/{kv-stores-gQrfH0KQ.d.mts → kv-stores-CHowq8VP.d.mts} +5 -6
- package/dist/kv-stores-CHowq8VP.d.mts.map +1 -0
- package/dist/{logger-COlEkn_C.d.mts → logger-DA43DvNY.d.mts} +18 -3
- package/dist/logger-DA43DvNY.d.mts.map +1 -0
- package/dist/{metadata-BhKXlN2F.mjs → metadata-DUBbuHqY.mjs} +2 -2
- package/dist/{metadata-BhKXlN2F.mjs.map → metadata-DUBbuHqY.mjs.map} +1 -1
- package/dist/{module-registry-CvP9mee-.mjs → module-registry-aIt66if2.mjs} +2 -2
- package/dist/{module-registry-CvP9mee-.mjs.map → module-registry-aIt66if2.mjs.map} +1 -1
- package/dist/path-BVA9MfN1.d.mts.map +1 -1
- package/dist/query-CXN52dzy.mjs +12 -0
- package/dist/{query-Cs_Llg77.mjs.map → query-CXN52dzy.mjs.map} +1 -1
- package/dist/{rate-limit-oLL5EPUf.d.mts → rate-limit-Dme747JJ.d.mts} +1 -2
- package/dist/rate-limit-Dme747JJ.d.mts.map +1 -0
- package/dist/{reactivity-XL0fFDvG.d.mts → reactivity-BkMNA0kp.d.mts} +2 -2
- package/dist/reactivity-BkMNA0kp.d.mts.map +1 -0
- package/dist/{reply-edT8RGBB.mjs → reply-C1ljl6xS.mjs} +3 -3
- package/dist/{reply-edT8RGBB.mjs.map → reply-C1ljl6xS.mjs.map} +1 -1
- package/dist/{request-id-IDobbxU-.d.mts → request-id-CVzJ1uHD.d.mts} +1 -2
- package/dist/request-id-CVzJ1uHD.d.mts.map +1 -0
- package/dist/{request-logger-DZVW6VNI.d.mts → request-logger-BU4ulKLp.d.mts} +1 -2
- package/dist/request-logger-BU4ulKLp.d.mts.map +1 -0
- package/dist/router-builder-BbgVXuy3.mjs +12 -0
- package/dist/router-builder-BbgVXuy3.mjs.map +1 -0
- package/dist/{router-builder-CiS2ASTJ.d.mts → router-builder-CMGhEBU2.d.mts} +2 -3
- package/dist/router-builder-CMGhEBU2.d.mts.map +1 -0
- package/dist/{session-DSRA-PUX.d.mts → session-z9iewOXA.d.mts} +1 -2
- package/dist/session-z9iewOXA.d.mts.map +1 -0
- package/dist/{spa-Dp9onKJt.d.mts → spa-DsRUrm69.d.mts} +4 -9
- package/dist/spa-DsRUrm69.d.mts.map +1 -0
- package/dist/{upload-CIZc803m.d.mts → upload-XVTyQcNN.d.mts} +3 -3
- package/dist/upload-XVTyQcNN.d.mts.map +1 -0
- package/dist/{upload-config-C3MSF7RF.mjs → upload-config-Dd_QvlpC.mjs} +2 -2
- package/dist/{upload-config-C3MSF7RF.mjs.map → upload-config-Dd_QvlpC.mjs.map} +1 -1
- package/dist/{validate-DoZDOhCi.d.mts → validate-DMYpUnrf.d.mts} +1 -2
- package/dist/validate-DMYpUnrf.d.mts.map +1 -0
- package/dist/views-Dj6XFaca.mjs +12 -0
- package/dist/views-Dj6XFaca.mjs.map +1 -0
- package/dist/views-DsfBT1fR.d.mts +659 -0
- package/dist/views-DsfBT1fR.d.mts.map +1 -0
- package/dist/web.d.mts +4 -5
- package/dist/web.d.mts.map +1 -1
- package/dist/web.mjs +2 -2
- package/dist/web.mjs.map +1 -1
- package/package.json +10 -10
- package/dist/adapter-BjxEv8oW.d.mts.map +0 -1
- package/dist/app-module-BwYtACD6.d.mts.map +0 -1
- package/dist/application-Bo3jSfmL.d.mts.map +0 -1
- package/dist/application-TiHVcGRL.mjs +0 -12
- package/dist/application-TiHVcGRL.mjs.map +0 -1
- package/dist/bootstrap-DUUxZXvF.d.mts.map +0 -1
- package/dist/cache-CwZzIH0D.d.mts.map +0 -1
- package/dist/container-iED1swkd.d.mts.map +0 -1
- package/dist/context-Cs0939u1.mjs +0 -12
- package/dist/context-Cs0939u1.mjs.map +0 -1
- package/dist/contributor-runner-B3Z3Q7J5.mjs +0 -13
- package/dist/contributor-runner-B3Z3Q7J5.mjs.map +0 -1
- package/dist/core-CQ6u5kOq.mjs +0 -12
- package/dist/core-CQ6u5kOq.mjs.map +0 -1
- package/dist/cors-C4aSCD3J.d.mts.map +0 -1
- package/dist/csrf-7nUXGTuz.d.mts.map +0 -1
- package/dist/decorators-wEJBqXHg.d.mts.map +0 -1
- package/dist/env-Ce-aYRxQ.mjs +0 -13
- package/dist/error-handler-3ih4E-QZ.d.mts.map +0 -1
- package/dist/errors-n0H96eEz.d.mts.map +0 -1
- package/dist/handler-D8Zyie-B.mjs +0 -12
- package/dist/handler-D8Zyie-B.mjs.map +0 -1
- package/dist/helmet-CKzZzeNl.d.mts.map +0 -1
- package/dist/http/middleware/views.mjs.map +0 -1
- package/dist/http/router-builder.mjs.map +0 -1
- package/dist/index-BtWJ9SLP.d.mts.map +0 -1
- package/dist/index-D98NLfS5.d.mts.map +0 -1
- package/dist/interfaces-CayXPOAf.d.mts.map +0 -1
- package/dist/kv-stores-gQrfH0KQ.d.mts.map +0 -1
- package/dist/logger-COlEkn_C.d.mts.map +0 -1
- package/dist/query-Cs_Llg77.mjs +0 -12
- package/dist/rate-limit-oLL5EPUf.d.mts.map +0 -1
- package/dist/reactivity-XL0fFDvG.d.mts.map +0 -1
- package/dist/request-id-IDobbxU-.d.mts.map +0 -1
- package/dist/request-logger-DZVW6VNI.d.mts.map +0 -1
- package/dist/rolldown-runtime-Bzotz84Y.mjs +0 -11
- package/dist/router-builder-CiS2ASTJ.d.mts.map +0 -1
- package/dist/session-DSRA-PUX.d.mts.map +0 -1
- package/dist/spa-Dp9onKJt.d.mts.map +0 -1
- package/dist/upload-CIZc803m.d.mts.map +0 -1
- package/dist/validate-DoZDOhCi.d.mts.map +0 -1
- package/dist/views-DjgUXRdu.d.mts +0 -275
- package/dist/views-DjgUXRdu.d.mts.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
import { i as Constructor, o as MaybePromise } from "./interfaces-
|
|
3
|
-
import { s as InjectionToken, t as Container } from "./container-
|
|
4
|
-
import { g as FileUploadConfig, k as RouteDefinition, x as MiddlewareHandler } from "./decorators-
|
|
5
|
-
import { _ as ExecutionContext, a as AnyContributorRegistration, d as ContributorRegistrations, r as AppModuleEntry, t as AppModule, v as MetaValue } from "./app-module-
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
2
|
+
import { i as Constructor, o as MaybePromise } from "./interfaces-BTTBdkvG.mjs";
|
|
3
|
+
import { s as InjectionToken, t as Container } from "./container-BW_MlgLj.mjs";
|
|
4
|
+
import { g as FileUploadConfig, k as RouteDefinition, x as MiddlewareHandler } from "./decorators-Bks7cgBJ.mjs";
|
|
5
|
+
import { _ as ExecutionContext, a as AnyContributorRegistration, d as ContributorRegistrations, r as AppModuleEntry, t as AppModule, v as MetaValue } from "./app-module-DtoySG6l.mjs";
|
|
6
|
+
import "./cache-C0qL0NSD.mjs";
|
|
7
|
+
import { i as ProblemDetails } from "./errors-By6UueCm.mjs";
|
|
8
|
+
import { S as QueryFieldConfig, T as TypedParsedQuery, t as ParseQueryOptions } from "./index-BfT5KZ-M.mjs";
|
|
9
|
+
import "reflect-metadata";
|
|
8
10
|
import http, { IncomingMessage, ServerResponse } from "node:http";
|
|
9
11
|
import { ErrorRequestHandler, Express as Express$1, NextFunction, Request, RequestHandler, Response } from "express";
|
|
10
|
-
|
|
11
12
|
//#region src/core/introspect.d.ts
|
|
12
13
|
/**
|
|
13
14
|
* Per-primitive introspection snapshot — the JSON shape an adapter or
|
|
@@ -688,81 +689,6 @@ declare class ModuleList extends Array<AppModuleEntry> {
|
|
|
688
689
|
*/
|
|
689
690
|
declare function defineModules(...initial: AppModuleEntry[]): ModuleList;
|
|
690
691
|
//#endregion
|
|
691
|
-
//#region src/core/disposables.d.ts
|
|
692
|
-
/**
|
|
693
|
-
* Registry for framework-owned resources that hold timers or other handles
|
|
694
|
-
* outside the adapter/plugin lifecycle — e.g. the in-memory session and
|
|
695
|
-
* rate-limit stores' cleanup intervals. `Application.shutdown()` drains it so
|
|
696
|
-
* startup and shutdown stay symmetric even for resources created lazily by
|
|
697
|
-
* middleware factories.
|
|
698
|
-
*
|
|
699
|
-
* Intervals are `.unref()`'d so they never wedge process exit — this registry
|
|
700
|
-
* exists for IN-PROCESS teardown (test suites, HMR, multi-app hosts) where
|
|
701
|
-
* each un-disposed store would otherwise leak a live interval + backing Map
|
|
702
|
-
* per app instance.
|
|
703
|
-
*/
|
|
704
|
-
type Disposable = () => void | Promise<void>;
|
|
705
|
-
/** Register a cleanup callback. Returns an unregister function. */
|
|
706
|
-
declare function registerDisposable(fn: Disposable): () => void;
|
|
707
|
-
/** Run and clear all registered disposables. Errors are swallowed per-entry. */
|
|
708
|
-
declare function disposeAll(): Promise<void>;
|
|
709
|
-
//#endregion
|
|
710
|
-
//#region src/core/kick-error.d.ts
|
|
711
|
-
/**
|
|
712
|
-
* Structured framework error with code, cause, and actionable fix hint.
|
|
713
|
-
*
|
|
714
|
-
* The goal is "the developer who hits this knows what to do next." A
|
|
715
|
-
* cryptic `Error('No binding found for: UserService')` becomes a
|
|
716
|
-
* multi-line explanation pointing at the likely cause, the exact code
|
|
717
|
-
* change to apply, and a docs link.
|
|
718
|
-
*
|
|
719
|
-
* `.message` carries the full multi-line plain-text body so Node's
|
|
720
|
-
* default `Error.toString()` and unhandled-exception printing still
|
|
721
|
-
* surface the helpful version. Call {@link formatKickError} to render a
|
|
722
|
-
* colorized version for terminals.
|
|
723
|
-
*
|
|
724
|
-
* Per-error factories live in `kick-errors.ts` — those are the public
|
|
725
|
-
* entry points framework code uses. `KickError` is exported so adopters
|
|
726
|
-
* can build their own structured errors using the same shape.
|
|
727
|
-
*/
|
|
728
|
-
interface KickErrorInit {
|
|
729
|
-
/** Short stable identifier (e.g. `KICK001`, `NO_PROVIDER`). */
|
|
730
|
-
code: string;
|
|
731
|
-
/** One-line headline. */
|
|
732
|
-
summary: string;
|
|
733
|
-
/** Multi-line explanation of why this happened. */
|
|
734
|
-
cause?: string;
|
|
735
|
-
/** Multi-line actionable fix — show exact code if possible. */
|
|
736
|
-
fix?: string;
|
|
737
|
-
/** Absolute URL to the docs page that covers this error. */
|
|
738
|
-
docsUrl?: string;
|
|
739
|
-
/** Arbitrary structured fields for log consumers / debug tooling. */
|
|
740
|
-
context?: Record<string, unknown>;
|
|
741
|
-
}
|
|
742
|
-
declare class KickError extends Error {
|
|
743
|
-
readonly code: string;
|
|
744
|
-
readonly summary: string;
|
|
745
|
-
readonly cause?: string;
|
|
746
|
-
readonly fix?: string;
|
|
747
|
-
readonly docsUrl?: string;
|
|
748
|
-
readonly context?: Record<string, unknown>;
|
|
749
|
-
constructor(init: KickErrorInit);
|
|
750
|
-
}
|
|
751
|
-
interface FormatKickErrorOptions {
|
|
752
|
-
/**
|
|
753
|
-
* Render ANSI colour codes. Defaults to TTY detection (`NO_COLOR` /
|
|
754
|
-
* `FORCE_COLOR` env vars honoured). Pass `false` for log files,
|
|
755
|
-
* structured loggers, or HTTP response bodies.
|
|
756
|
-
*/
|
|
757
|
-
color?: boolean;
|
|
758
|
-
}
|
|
759
|
-
/**
|
|
760
|
-
* Render a {@link KickErrorInit} (or {@link KickError} instance) into a
|
|
761
|
-
* multi-line human-readable string. Identical layout regardless of
|
|
762
|
-
* colour — the colour flag only toggles ANSI codes.
|
|
763
|
-
*/
|
|
764
|
-
declare function formatKickError(err: KickErrorInit | KickError, options?: FormatKickErrorOptions): string;
|
|
765
|
-
//#endregion
|
|
766
692
|
//#region src/core/metadata.d.ts
|
|
767
693
|
/**
|
|
768
694
|
* Typed utilities for reflect-metadata operations.
|
|
@@ -803,139 +729,6 @@ declare function setInMetaRecord<V>(key: MetaKey, target: object, recKey: string
|
|
|
803
729
|
/** Get a Record from class metadata (returns empty object if absent) */
|
|
804
730
|
declare function getMetaRecord<V>(key: MetaKey, target: object): Record<string | number, V>;
|
|
805
731
|
//#endregion
|
|
806
|
-
//#region src/core/circuit-breaker.d.ts
|
|
807
|
-
/**
|
|
808
|
-
* Circuit Breaker pattern for external service calls.
|
|
809
|
-
*
|
|
810
|
-
* Protects your application from cascading failures when downstream
|
|
811
|
-
* services are unhealthy by short-circuiting requests after a
|
|
812
|
-
* configurable failure threshold.
|
|
813
|
-
*
|
|
814
|
-
* @example
|
|
815
|
-
* ```ts
|
|
816
|
-
* const breaker = new CircuitBreaker('payment-api', {
|
|
817
|
-
* failureThreshold: 5,
|
|
818
|
-
* resetTimeout: 30_000,
|
|
819
|
-
* })
|
|
820
|
-
*
|
|
821
|
-
* const result = await breaker.execute(() => fetch('https://payment.example.com/charge'))
|
|
822
|
-
* ```
|
|
823
|
-
*/
|
|
824
|
-
type CircuitBreakerState = 'closed' | 'open' | 'half_open';
|
|
825
|
-
interface CircuitBreakerOptions {
|
|
826
|
-
/** Number of consecutive failures before the circuit opens. */
|
|
827
|
-
failureThreshold: number;
|
|
828
|
-
/** Milliseconds to wait before transitioning from OPEN to HALF_OPEN. */
|
|
829
|
-
resetTimeout: number;
|
|
830
|
-
/** Max requests allowed in HALF_OPEN state before deciding (default 1). */
|
|
831
|
-
halfOpenMax?: number;
|
|
832
|
-
}
|
|
833
|
-
interface CircuitBreakerStats {
|
|
834
|
-
failures: number;
|
|
835
|
-
successes: number;
|
|
836
|
-
state: CircuitBreakerState;
|
|
837
|
-
lastFailure?: Date;
|
|
838
|
-
}
|
|
839
|
-
/**
|
|
840
|
-
* Error thrown when the circuit is open and calls are being rejected.
|
|
841
|
-
*/
|
|
842
|
-
declare class CircuitOpenError extends Error {
|
|
843
|
-
readonly breakerName: string;
|
|
844
|
-
constructor(breakerName: string);
|
|
845
|
-
}
|
|
846
|
-
declare class CircuitBreaker {
|
|
847
|
-
readonly name: string;
|
|
848
|
-
private state;
|
|
849
|
-
private failures;
|
|
850
|
-
private successes;
|
|
851
|
-
private halfOpenAttempts;
|
|
852
|
-
private lastFailure?;
|
|
853
|
-
private openedAt?;
|
|
854
|
-
private readonly failureThreshold;
|
|
855
|
-
private readonly resetTimeout;
|
|
856
|
-
private readonly halfOpenMax;
|
|
857
|
-
constructor(name: string, options: CircuitBreakerOptions);
|
|
858
|
-
/**
|
|
859
|
-
* Execute an async function through the circuit breaker.
|
|
860
|
-
* Throws `CircuitOpenError` if the circuit is open.
|
|
861
|
-
*/
|
|
862
|
-
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
863
|
-
/** Returns the current circuit state. */
|
|
864
|
-
getState(): CircuitBreakerState;
|
|
865
|
-
/** Returns current statistics. */
|
|
866
|
-
getStats(): CircuitBreakerStats;
|
|
867
|
-
/** Manually reset the circuit breaker to CLOSED state. */
|
|
868
|
-
reset(): void;
|
|
869
|
-
private onSuccess;
|
|
870
|
-
private onFailure;
|
|
871
|
-
private maybeTransitionToHalfOpen;
|
|
872
|
-
}
|
|
873
|
-
//#endregion
|
|
874
|
-
//#region src/core/context-errors.d.ts
|
|
875
|
-
/**
|
|
876
|
-
* Errors thrown by the Context Contributor pipeline.
|
|
877
|
-
*
|
|
878
|
-
* All three are startup-time errors raised during pipeline build (topo-sort
|
|
879
|
-
* + validation), not per-request — a misconfigured app fails to boot rather
|
|
880
|
-
* than fails a request. Per the locked design in `architecture.md` §20.4,
|
|
881
|
-
* the pipeline is validated once when each route is mounted and the
|
|
882
|
-
* resolved order is cached on the route.
|
|
883
|
-
*/
|
|
884
|
-
/**
|
|
885
|
-
* A contributor declared `dependsOn: ['<key>']` but no other contributor
|
|
886
|
-
* (at any precedence level) produces that key for the same route.
|
|
887
|
-
*
|
|
888
|
-
* @example
|
|
889
|
-
* ```text
|
|
890
|
-
* MissingContributorError: Missing context contributor 'tenant' required by 'project' on route GET /projects/:id
|
|
891
|
-
* declared at src/contributors/load-project.ts:42:18
|
|
892
|
-
* ```
|
|
893
|
-
*/
|
|
894
|
-
declare class MissingContributorError extends Error {
|
|
895
|
-
readonly key: string;
|
|
896
|
-
readonly dependent: string;
|
|
897
|
-
readonly route?: string;
|
|
898
|
-
readonly dependentDefinedAt?: string;
|
|
899
|
-
constructor(key: string, dependent: string, route?: string, dependentDefinedAt?: string);
|
|
900
|
-
}
|
|
901
|
-
/**
|
|
902
|
-
* Topo-sort detected a cycle in `dependsOn` declarations. The `cycle` field
|
|
903
|
-
* lists the keys in the order they form the loop, with the first key
|
|
904
|
-
* repeated at the end so the path reads naturally.
|
|
905
|
-
*
|
|
906
|
-
* @example
|
|
907
|
-
* ```text
|
|
908
|
-
* ContributorCycleError: Cycle in context contributors on route GET /projects/:id: tenant → project → tenant
|
|
909
|
-
* ```
|
|
910
|
-
*/
|
|
911
|
-
declare class ContributorCycleError extends Error {
|
|
912
|
-
readonly cycle: readonly string[];
|
|
913
|
-
readonly route?: string;
|
|
914
|
-
constructor(cycle: readonly string[], route?: string);
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* Two contributors at the same precedence level both produce the same key
|
|
918
|
-
* for the same route. Precedence resolution (method > class > module >
|
|
919
|
-
* adapter > global, per architecture.md §20.4) silently drops
|
|
920
|
-
* lower-precedence duplicates; this error fires only when ties occur
|
|
921
|
-
* within a single level — e.g., two method-level decorators declaring
|
|
922
|
-
* `key: 'tenant'`.
|
|
923
|
-
*
|
|
924
|
-
* `sources` is best-effort identifying labels for each conflicting
|
|
925
|
-
* registration (typically the decorator's call site or registering
|
|
926
|
-
* module/adapter name).
|
|
927
|
-
*
|
|
928
|
-
* @example
|
|
929
|
-
* ```text
|
|
930
|
-
* DuplicateContributorError: Duplicate context contributor for key 'tenant' at the same precedence level. Sources: LoadTenantFromHeader, LoadTenantFromSubdomain
|
|
931
|
-
* ```
|
|
932
|
-
*/
|
|
933
|
-
declare class DuplicateContributorError extends Error {
|
|
934
|
-
readonly key: string;
|
|
935
|
-
readonly sources: readonly string[];
|
|
936
|
-
constructor(key: string, sources: readonly string[]);
|
|
937
|
-
}
|
|
938
|
-
//#endregion
|
|
939
732
|
//#region src/core/contributor-pipeline.d.ts
|
|
940
733
|
/**
|
|
941
734
|
* Where a contributor was registered, ordered by precedence
|
|
@@ -1042,83 +835,6 @@ interface RunContributorsOptions {
|
|
|
1042
835
|
*/
|
|
1043
836
|
declare function runContributors(options: RunContributorsOptions): Promise<void>;
|
|
1044
837
|
//#endregion
|
|
1045
|
-
//#region src/core/mount-sort.d.ts
|
|
1046
|
-
/**
|
|
1047
|
-
* Topological sort for plugins and adapters with `dependsOn` declarations.
|
|
1048
|
-
*
|
|
1049
|
-
* Mirrors the algorithm used by the Context Contributor pipeline
|
|
1050
|
-
* (`contributor-pipeline.ts:topoSort`) but operates on a name-keyed
|
|
1051
|
-
* `MountSortItem` shape rather than a `ContributorRegistration`. Kept
|
|
1052
|
-
* standalone instead of factored generic so that:
|
|
1053
|
-
*
|
|
1054
|
-
* 1. The contributor pipeline doesn't need refactoring (risk reduction).
|
|
1055
|
-
* 2. The error classes can carry plugin/adapter-specific diagnostic
|
|
1056
|
-
* fields (`kind`, `dependent`) without bending the contributor types.
|
|
1057
|
-
*/
|
|
1058
|
-
/**
|
|
1059
|
-
* A plugin or adapter that participates in dependency-ordered mounting.
|
|
1060
|
-
* Both `KickPlugin` and `AppAdapter` satisfy this shape via their `name`
|
|
1061
|
-
* and `dependsOn` fields.
|
|
1062
|
-
*/
|
|
1063
|
-
interface MountSortItem {
|
|
1064
|
-
/** Unique mount name within the plugin/adapter set being sorted. */
|
|
1065
|
-
name: string;
|
|
1066
|
-
/**
|
|
1067
|
-
* Other plugin/adapter names that must mount before this one. Cycles
|
|
1068
|
-
* and missing names fail at boot — same fail-fast contract as the
|
|
1069
|
-
* Context Contributor pipeline (architecture.md §20.4).
|
|
1070
|
-
*/
|
|
1071
|
-
dependsOn?: readonly string[];
|
|
1072
|
-
}
|
|
1073
|
-
/** What kind of mount set the sort is operating on — surfaces in error messages. */
|
|
1074
|
-
type MountKind = 'plugin' | 'adapter';
|
|
1075
|
-
/**
|
|
1076
|
-
* Two items in the same mount set declared the same `name`. Plugin/adapter
|
|
1077
|
-
* names must be unique so `dependsOn` references resolve unambiguously.
|
|
1078
|
-
*/
|
|
1079
|
-
declare class DuplicateMountNameError extends Error {
|
|
1080
|
-
readonly kind: MountKind;
|
|
1081
|
-
readonly mountName: string;
|
|
1082
|
-
constructor(kind: MountKind, mountName: string);
|
|
1083
|
-
}
|
|
1084
|
-
/**
|
|
1085
|
-
* A `dependsOn` entry references a plugin/adapter that isn't in the
|
|
1086
|
-
* current set. The dependency might not be installed, might be misspelled,
|
|
1087
|
-
* or might live in a different mount set (plugin referencing an adapter,
|
|
1088
|
-
* or vice versa — they sort independently).
|
|
1089
|
-
*/
|
|
1090
|
-
declare class MissingMountDepError extends Error {
|
|
1091
|
-
readonly kind: MountKind;
|
|
1092
|
-
readonly missing: string;
|
|
1093
|
-
readonly dependent: string;
|
|
1094
|
-
constructor(kind: MountKind, missing: string, dependent: string);
|
|
1095
|
-
}
|
|
1096
|
-
/**
|
|
1097
|
-
* The `dependsOn` declarations form a cycle. Boot fails so the cycle
|
|
1098
|
-
* can't poison live traffic. The `cycle` field reports one path through
|
|
1099
|
-
* the offending nodes for diagnostics — formatted `A → B → C → A`.
|
|
1100
|
-
*/
|
|
1101
|
-
declare class MountCycleError extends Error {
|
|
1102
|
-
readonly kind: MountKind;
|
|
1103
|
-
readonly cycle: readonly string[];
|
|
1104
|
-
constructor(kind: MountKind, cycle: readonly string[]);
|
|
1105
|
-
}
|
|
1106
|
-
/**
|
|
1107
|
-
* Topologically sort `items` so every item with `dependsOn: ['X']` mounts
|
|
1108
|
-
* after `X`. Items without `dependsOn` keep their input order via Kahn's
|
|
1109
|
-
* algorithm with a FIFO queue seeded in input order — preserves the
|
|
1110
|
-
* historical "plugins/adapters mount in declaration order" behaviour for
|
|
1111
|
-
* any set that doesn't use `dependsOn`.
|
|
1112
|
-
*
|
|
1113
|
-
* @param items - mountable items, e.g. plugins or adapters
|
|
1114
|
-
* @param kind - 'plugin' | 'adapter', used in error messages
|
|
1115
|
-
* @returns a new array in valid mount order
|
|
1116
|
-
* @throws {DuplicateMountNameError} two items share a name
|
|
1117
|
-
* @throws {MissingMountDepError} a `dependsOn` references an unknown name
|
|
1118
|
-
* @throws {MountCycleError} the dep graph contains a cycle
|
|
1119
|
-
*/
|
|
1120
|
-
declare function mountSort<T extends MountSortItem>(items: readonly T[], kind: MountKind): T[];
|
|
1121
|
-
//#endregion
|
|
1122
838
|
//#region src/core/define-adapter.d.ts
|
|
1123
839
|
/**
|
|
1124
840
|
* Options passed to {@link defineAdapter}. Mirrors {@link DefinePluginOptions}
|
|
@@ -1196,49 +912,6 @@ interface AdapterFactory<TConfig, TExtra = unknown> {
|
|
|
1196
912
|
*/
|
|
1197
913
|
declare function defineAdapter<TConfig = Record<string, unknown>, TExtra = unknown>(options: DefineAdapterOptions<TConfig, TExtra>): AdapterFactory<TConfig, TExtra>;
|
|
1198
914
|
//#endregion
|
|
1199
|
-
//#region src/core/asset-keys.d.ts
|
|
1200
|
-
type AssetKeyStrategy = 'auto' | 'strip' | 'with-extension';
|
|
1201
|
-
interface AssetKeyPair {
|
|
1202
|
-
/** Source-relative path the file was discovered at. */
|
|
1203
|
-
rel: string;
|
|
1204
|
-
/** Final logical key for the manifest, including the namespace prefix. */
|
|
1205
|
-
key: string;
|
|
1206
|
-
}
|
|
1207
|
-
interface GroupAssetKeysOptions {
|
|
1208
|
-
/**
|
|
1209
|
-
* Strategy applied to this namespace. Default `'auto'`.
|
|
1210
|
-
*
|
|
1211
|
-
* Adopters override per-namespace via `assetMap.<ns>.keys` in
|
|
1212
|
-
* kick.config.ts when they want uniform behaviour (e.g. always
|
|
1213
|
-
* include the extension regardless of collisions).
|
|
1214
|
-
*/
|
|
1215
|
-
strategy?: AssetKeyStrategy;
|
|
1216
|
-
}
|
|
1217
|
-
interface GroupAssetKeysResult {
|
|
1218
|
-
pairs: AssetKeyPair[];
|
|
1219
|
-
/**
|
|
1220
|
-
* Number of collision groups resolved by keeping extensions.
|
|
1221
|
-
* Surfaces as an informational log ("auto-resolved N collisions")
|
|
1222
|
-
* so adopters know whether they're relying on auto-mode or not.
|
|
1223
|
-
* Always 0 for `'strip'` (overwrites) and `'with-extension'`
|
|
1224
|
-
* (extensions always preserved, no collision possible).
|
|
1225
|
-
*/
|
|
1226
|
-
collisionGroupsResolved: number;
|
|
1227
|
-
}
|
|
1228
|
-
/**
|
|
1229
|
-
* Compute final manifest keys for a namespace's discovered paths,
|
|
1230
|
-
* given the chosen strategy. Pure function — no fs / config / globals
|
|
1231
|
-
* involved.
|
|
1232
|
-
*
|
|
1233
|
-
* @param namespace assetMap key — e.g. `'mails'`, `'pages'`.
|
|
1234
|
-
* @param paths source-relative file paths (POSIX separators) discovered
|
|
1235
|
-
* under the namespace's `src` directory.
|
|
1236
|
-
* @param opts grouping options.
|
|
1237
|
-
*/
|
|
1238
|
-
declare function groupAssetKeys(namespace: string, paths: readonly string[], opts?: GroupAssetKeysOptions): GroupAssetKeysResult;
|
|
1239
|
-
/** Strip the final extension from a path. `'mails/welcome.ejs'` → `'mails/welcome'`. */
|
|
1240
|
-
declare function stripExt(path: string): string;
|
|
1241
|
-
//#endregion
|
|
1242
915
|
//#region src/http/context.d.ts
|
|
1243
916
|
/**
|
|
1244
917
|
* Input shape for the typed problem-detail convenience methods on
|
|
@@ -1313,7 +986,7 @@ interface ProblemSender {
|
|
|
1313
986
|
* Type-only. No runtime cost. `DeepReadonly<any>` is `any` (TS
|
|
1314
987
|
* distributes conditional types over `any`).
|
|
1315
988
|
*/
|
|
1316
|
-
type DeepReadonly<T> = T extends ((...args: never[]) => unknown) ? T : T extends Date | RegExp ? T : T extends Map<infer K, infer V> ? ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>> : T extends Set<infer V> ? ReadonlySet<DeepReadonly<V>> : T extends readonly (infer U)[] ? number extends T['length'] ? ReadonlyArray<DeepReadonly<U>> : { readonly [K in keyof T]: DeepReadonly<T[K]
|
|
989
|
+
type DeepReadonly<T> = T extends ((...args: never[]) => unknown) ? T : T extends Date | RegExp ? T : T extends Map<infer K, infer V> ? ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>> : T extends Set<infer V> ? ReadonlySet<DeepReadonly<V>> : T extends readonly (infer U)[] ? number extends T['length'] ? ReadonlyArray<DeepReadonly<U>> : { readonly [K in keyof T]: DeepReadonly<T[K]>; } : T extends object ? { readonly [K in keyof T]: DeepReadonly<T[K]>; } : T;
|
|
1317
990
|
/**
|
|
1318
991
|
* The shape of a single route entry in `KickRoutes`. Generated by
|
|
1319
992
|
* `kick typegen` and consumed via the `Ctx<T>` helper. Each field is
|
|
@@ -1326,6 +999,21 @@ interface RouteShape {
|
|
|
1326
999
|
body?: unknown;
|
|
1327
1000
|
query?: unknown;
|
|
1328
1001
|
response?: unknown;
|
|
1002
|
+
/**
|
|
1003
|
+
* Union of context keys `kick typegen` proved are populated for this
|
|
1004
|
+
* route — the keys of every context contributor applied at method or
|
|
1005
|
+
* class level. Drives {@link RequestContext.require} narrowing, so
|
|
1006
|
+
* calling `ctx.require()` for a key this route doesn't carry is a
|
|
1007
|
+
* compile error instead of a request-time throw.
|
|
1008
|
+
*
|
|
1009
|
+
* `string` (the default) means "not proven", not "no keys". Typegen
|
|
1010
|
+
* emits `string` whenever it cannot see the full picture — a
|
|
1011
|
+
* contributor registered at module / adapter / bootstrap level, or an
|
|
1012
|
+
* unrecognised decorator that might bundle contributors of its own.
|
|
1013
|
+
* Narrowing an unprovable route would produce compile errors for keys
|
|
1014
|
+
* that really are present.
|
|
1015
|
+
*/
|
|
1016
|
+
contextKeys?: string;
|
|
1329
1017
|
}
|
|
1330
1018
|
/**
|
|
1331
1019
|
* Unified request/response abstraction passed to every controller method.
|
|
@@ -1335,7 +1023,14 @@ interface RouteShape {
|
|
|
1335
1023
|
* Contributor pipeline (#107) can run against this concrete HTTP context
|
|
1336
1024
|
* the same way it will run against future WS / queue / cron contexts.
|
|
1337
1025
|
*/
|
|
1338
|
-
declare class RequestContext<TBody = any, TParams = any, TQuery = any
|
|
1026
|
+
declare class RequestContext<TBody = any, TParams = any, TQuery = any,
|
|
1027
|
+
/**
|
|
1028
|
+
* Context keys proven present for this route. Defaults to `string`, so
|
|
1029
|
+
* a handler typed as plain `RequestContext` keeps today's unnarrowed
|
|
1030
|
+
* behaviour — which is also the deliberate escape hatch when typegen's
|
|
1031
|
+
* view is incomplete.
|
|
1032
|
+
*/
|
|
1033
|
+
TKeys extends string = string> implements ExecutionContext<TKeys> {
|
|
1339
1034
|
readonly req: ActiveRuntime['request'];
|
|
1340
1035
|
readonly res: ActiveRuntime['response'];
|
|
1341
1036
|
readonly next: NextFunction;
|
|
@@ -1523,6 +1218,50 @@ declare class RequestContext<TBody = any, TParams = any, TQuery = any> implement
|
|
|
1523
1218
|
* `ctx.get<MyType>('custom')`.
|
|
1524
1219
|
*/
|
|
1525
1220
|
get<K extends string>(key: K): MetaValue<K> | undefined;
|
|
1221
|
+
/**
|
|
1222
|
+
* Read a value that a contributor is expected to have produced, and
|
|
1223
|
+
* throw {@link MissingContextValueError} when it hasn't.
|
|
1224
|
+
*
|
|
1225
|
+
* Use this instead of `ctx.get(key)!` anywhere the value is a
|
|
1226
|
+
* precondition rather than an optional extra — permissions, tenants,
|
|
1227
|
+
* the resolved subject of the route. The non-null assertion compiles
|
|
1228
|
+
* whether or not the producing contributor is actually applied to the
|
|
1229
|
+
* route, so a dropped `@LoadTenant` turns into `undefined` flowing
|
|
1230
|
+
* silently into an auth check. `require()` fails loudly at that point
|
|
1231
|
+
* instead, naming the key.
|
|
1232
|
+
*
|
|
1233
|
+
* ```ts
|
|
1234
|
+
* // before — compiles even if @OperatorPerm was never applied
|
|
1235
|
+
* const perm = ctx.get('operatorPerm')!
|
|
1236
|
+
*
|
|
1237
|
+
* // after — throws MissingContextValueError naming the key + route
|
|
1238
|
+
* const perm = ctx.require('operatorPerm')
|
|
1239
|
+
* ```
|
|
1240
|
+
*
|
|
1241
|
+
* When `TKeys` is narrowed — which it is for a handler typed as
|
|
1242
|
+
* `Ctx<KickRoutes…>`, from typegen's per-route `contextKeys` — asking
|
|
1243
|
+
* for a key the route doesn't carry is a compile error, so a dropped
|
|
1244
|
+
* decorator fails the build. `TKeys` stays `string` (no narrowing) for
|
|
1245
|
+
* a plain `RequestContext` and for any route typegen couldn't prove
|
|
1246
|
+
* complete; there this is a runtime guarantee only.
|
|
1247
|
+
* See `architecture.md` §20.14.
|
|
1248
|
+
*
|
|
1249
|
+
* `null` counts as present; only `undefined` (or a missing entry)
|
|
1250
|
+
* throws. A contributor that deliberately resolves to `null` is
|
|
1251
|
+
* expressing "looked, found nothing", which is a real value — which
|
|
1252
|
+
* is why the return type is `Exclude<…, undefined>` and NOT
|
|
1253
|
+
* `NonNullable<…>`. The latter would strip `null` from the type while
|
|
1254
|
+
* the runtime still hands it back, so a caller would be told a value
|
|
1255
|
+
* is non-null and then get `null`.
|
|
1256
|
+
*/
|
|
1257
|
+
require<K extends TKeys>(key: K): Exclude<MetaValue<K>, undefined>;
|
|
1258
|
+
/**
|
|
1259
|
+
* Best-effort `"GET /path"` label for error messages. Runtime-agnostic:
|
|
1260
|
+
* express/fastify requests and web-standard `Request` all expose
|
|
1261
|
+
* `method` + `url`, but none of them are guaranteed here, so every
|
|
1262
|
+
* access is defensive and the whole thing is optional.
|
|
1263
|
+
*/
|
|
1264
|
+
private routeLabel;
|
|
1526
1265
|
/**
|
|
1527
1266
|
* Write a value to the per-request metadata store. Throws when no
|
|
1528
1267
|
* AsyncLocalStorage frame is active — see {@link metadataForWrite}
|
|
@@ -1582,6 +1321,19 @@ declare class RequestContext<TBody = any, TParams = any, TQuery = any> implement
|
|
|
1582
1321
|
*/
|
|
1583
1322
|
get problem(): ProblemSender;
|
|
1584
1323
|
private sendProblem;
|
|
1324
|
+
/**
|
|
1325
|
+
* Send an HTML response.
|
|
1326
|
+
*
|
|
1327
|
+
* Passes the full MIME type rather than the `'html'` shorthand. The
|
|
1328
|
+
* shorthand is an Express affordance — `res.type()` runs it through a MIME
|
|
1329
|
+
* lookup — but the Fastify and h3 drivers forward the string to their own
|
|
1330
|
+
* `type()` / `setHeader()` verbatim, so `'html'` reached the wire as a
|
|
1331
|
+
* malformed `Content-Type: html` on those engines. Fastify 5.10 started
|
|
1332
|
+
* normalising that invalid value to `text/plain`, which is what surfaced it.
|
|
1333
|
+
*
|
|
1334
|
+
* Express produces `text/html; charset=utf-8` for `.type('html')`, so
|
|
1335
|
+
* spelling it out here is byte-identical there and correct everywhere else.
|
|
1336
|
+
*/
|
|
1585
1337
|
html(content: string, status?: number): RuntimeResponse;
|
|
1586
1338
|
download(buffer: Buffer, filename: string, contentType?: string): RuntimeResponse;
|
|
1587
1339
|
/**
|
|
@@ -1699,7 +1451,9 @@ type Ctx<TRoute extends RouteShape = RouteShape> = RequestContext<TRoute extends
|
|
|
1699
1451
|
params: infer P;
|
|
1700
1452
|
} ? P : any, TRoute extends {
|
|
1701
1453
|
query: infer Q;
|
|
1702
|
-
} ? Q : any
|
|
1454
|
+
} ? Q : any, TRoute extends {
|
|
1455
|
+
contextKeys: infer K;
|
|
1456
|
+
} ? (K extends string ? K : string) : string>;
|
|
1703
1457
|
/**
|
|
1704
1458
|
* Global ambient registry of typed routes, populated by `kick typegen`.
|
|
1705
1459
|
*
|
|
@@ -1714,7 +1468,7 @@ type Ctx<TRoute extends RouteShape = RouteShape> = RequestContext<TRoute extends
|
|
|
1714
1468
|
*/
|
|
1715
1469
|
declare global {
|
|
1716
1470
|
namespace KickRoutes {}
|
|
1717
|
-
}
|
|
1471
|
+
}
|
|
1718
1472
|
//#endregion
|
|
1719
1473
|
//#region src/http/runtime.d.ts
|
|
1720
1474
|
/** HTTP verbs the router emits. Mirrors the decorator surface (@Get/@Post/...). */
|
|
@@ -2169,5 +1923,5 @@ interface AppAdapter {
|
|
|
2169
1923
|
/** Constructor type for AppAdapter classes */
|
|
2170
1924
|
type AppAdapterClass = new () => AppAdapter;
|
|
2171
1925
|
//#endregion
|
|
2172
|
-
export {
|
|
2173
|
-
//# sourceMappingURL=adapter-
|
|
1926
|
+
export { defineModules as $, DefineAdapterOptions as A, getClassMetaOrUndefined as B, Ctx as C, SseHandler as D, RouteShape as E, ContributorPipeline as F, hasClassMeta as G, getMetaRecord as H, ContributorSource as I, setClassMeta as J, pushClassMeta as K, SourcedRegistration as L, RunContributorsOptions as M, runContributors as N, AdapterAsyncOptions as O, BuildPipelineOptions as P, ModuleList as Q, buildPipeline as R, UseConnectOptions as S, RequestContext as T, getMethodMeta as U, getMetaMap as V, getMethodMetaOrUndefined as W, setInMetaRecord as X, setInMetaMap as Y, setMethodMeta as Z, RouteTable as _, IntrospectionSnapshot as _t, MiddlewarePath as a, PluginAsyncOptions as at, RuntimeResponse as b, AdapterHttp as c, KickPlugin as ct, ExpressRuntimeTypes as d, AugmentationMeta as dt, DefineModuleOptions as et, HttpRuntime as f, KickJsPluginName as ft, RouteMethod as g, IntrospectionKind as gt, RouteMeta as h, IntrospectFn as ht, AppAdapterClass as i, DefinePluginOptions as it, defineAdapter as j, AdapterFactory as k, ConnectMiddleware as l, ModuleRegistry as lt, RouteEntry as m, defineAugmentation as mt, AdapterMiddleware as n, defineModule as nt, MiddlewarePhase as o, PluginFactory as ot, KickRuntimeRegister as p, KickJsPluginRegistry as pt, pushMethodMeta as q, AppAdapter as r, BuildContext as rt, ActiveRuntime as s, definePlugin as st, AdapterContext as t, ModuleFactory as tt, CtxHandler as u, MutableModuleRegistry as ut, RuntimeAppOptions as v, DeepReadonly as w, RuntimeTypeMap as x, RuntimeCapabilities as y, getClassMeta as z };
|
|
1927
|
+
//# sourceMappingURL=adapter-CbMq-NBf.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-CbMq-NBf.d.mts","names":[],"sources":["../src/core/introspect.ts","../src/core/augmentation.ts","../src/core/module-registry.ts","../src/core/plugin.ts","../src/core/define-plugin.ts","../src/core/define-module.ts","../src/core/define-modules.ts","../src/core/metadata.ts","../src/core/contributor-pipeline.ts","../src/core/contributor-runner.ts","../src/core/define-adapter.ts","../src/http/context.ts","../src/http/runtime.ts","../src/core/adapter.ts"],"mappings":"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"}
|