@theokit/http 1.2.0 → 2.0.0

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.
@@ -0,0 +1,321 @@
1
+ import {
2
+ CONTROLLER_PREFIX,
3
+ EXPOSE_AGENT,
4
+ ROUTE_HEADERS,
5
+ ROUTE_METHODS,
6
+ ROUTE_PARAMS,
7
+ ROUTE_REDIRECT,
8
+ ROUTE_STATUS,
9
+ USE_FILTERS,
10
+ USE_GUARDS,
11
+ USE_INTERCEPTORS,
12
+ getMeta
13
+ } from "./chunk-AJOJXZRY.js";
14
+ import {
15
+ __name
16
+ } from "./chunk-Z4QWC7IK.js";
17
+
18
+ // src/bridge/errors.ts
19
+ var HttpDecoratorsConfigError = class extends Error {
20
+ static {
21
+ __name(this, "HttpDecoratorsConfigError");
22
+ }
23
+ name = "HttpDecoratorsConfigError";
24
+ constructor(message) {
25
+ super(message);
26
+ }
27
+ };
28
+
29
+ // src/bridge/execution-context.ts
30
+ function createExecutionContext(request, controllerClass, methodName) {
31
+ const url = new URL(request.url);
32
+ return {
33
+ getRequest: /* @__PURE__ */ __name(() => request, "getRequest"),
34
+ getUrl: /* @__PURE__ */ __name(() => url, "getUrl"),
35
+ getClass: /* @__PURE__ */ __name(() => controllerClass, "getClass"),
36
+ getMethodName: /* @__PURE__ */ __name(() => methodName, "getMethodName")
37
+ };
38
+ }
39
+ __name(createExecutionContext, "createExecutionContext");
40
+
41
+ // src/decorators/set-metadata.ts
42
+ import "reflect-metadata";
43
+ var decoratorKeyCounter = 0;
44
+ function createDecorator() {
45
+ const key = /* @__PURE__ */ Symbol.for(`theokit:custom:${++decoratorKeyCounter}`);
46
+ const decorator = /* @__PURE__ */ __name((value) => {
47
+ return (target, propertyKey) => {
48
+ const metaTarget = propertyKey !== void 0 ? target.constructor : target;
49
+ Reflect.defineMetadata(key, value, metaTarget, propertyKey);
50
+ };
51
+ }, "decorator");
52
+ decorator.key = key;
53
+ return decorator;
54
+ }
55
+ __name(createDecorator, "createDecorator");
56
+ function SetMetadata(metaKey, value) {
57
+ return (target, propertyKey) => {
58
+ const metaTarget = propertyKey !== void 0 ? target.constructor : target;
59
+ Reflect.defineMetadata(metaKey, value, metaTarget, propertyKey);
60
+ };
61
+ }
62
+ __name(SetMetadata, "SetMetadata");
63
+ var Reflector = class {
64
+ static {
65
+ __name(this, "Reflector");
66
+ }
67
+ /**
68
+ * Read metadata set by a typed decorator created via createDecorator<T>().
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const Roles = createDecorator<string[]>()
73
+ * const reflector = new Reflector()
74
+ * const roles = reflector.get(Roles, handlerFn) // string[] | undefined
75
+ * ```
76
+ */
77
+ get(decorator, target, propertyKey) {
78
+ const key = decorator.key;
79
+ if (!key) return void 0;
80
+ if (propertyKey !== void 0) {
81
+ return Reflect.getMetadata(key, target, propertyKey);
82
+ }
83
+ return Reflect.getMetadata(key, target);
84
+ }
85
+ /**
86
+ * Read metadata set by @SetMetadata(key, value).
87
+ */
88
+ getByKey(key, target, propertyKey) {
89
+ if (propertyKey !== void 0) {
90
+ return Reflect.getMetadata(key, target, propertyKey);
91
+ }
92
+ return Reflect.getMetadata(key, target);
93
+ }
94
+ /**
95
+ * Read metadata checking method-level first, then class-level.
96
+ * Returns the first non-undefined value found.
97
+ *
98
+ * NestJS equivalent: `reflector.getAllAndOverride(ROLES_KEY, [context.getHandler(), context.getClass()])`
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * const Roles = createDecorator<string[]>()
103
+ * // In a guard:
104
+ * const roles = reflector.getAllAndOverride(Roles, context.getClass(), context.getMethodName())
105
+ * // Checks method-level @Roles first, falls back to class-level @Roles
106
+ * ```
107
+ */
108
+ getAllAndOverride(decorator, target, propertyKey) {
109
+ if (propertyKey !== void 0) {
110
+ const methodLevel = this.get(decorator, target, propertyKey);
111
+ if (methodLevel !== void 0) return methodLevel;
112
+ }
113
+ return this.get(decorator, target);
114
+ }
115
+ /**
116
+ * Read metadata checking method-level first, then class-level, by raw key.
117
+ * Returns the first non-undefined value found.
118
+ */
119
+ getAllAndOverrideByKey(key, target, propertyKey) {
120
+ if (propertyKey !== void 0) {
121
+ const methodLevel = this.getByKey(key, target, propertyKey);
122
+ if (methodLevel !== void 0) return methodLevel;
123
+ }
124
+ return this.getByKey(key, target);
125
+ }
126
+ /**
127
+ * Read metadata from both method-level and class-level, merging arrays.
128
+ * Returns all found values as a flat array.
129
+ *
130
+ * NestJS equivalent: `reflector.getAllAndMerge(ROLES_KEY, [context.getHandler(), context.getClass()])`
131
+ *
132
+ * @example
133
+ * ```ts
134
+ * const Tags = createDecorator<string[]>()
135
+ *
136
+ * @Tags(['api'])
137
+ * @Controller('cats')
138
+ * class CatsCtrl {
139
+ * @Tags(['read'])
140
+ * @Get()
141
+ * findAll() {}
142
+ * }
143
+ *
144
+ * reflector.getAllAndMerge(Tags, CatsCtrl, 'findAll')
145
+ * // → ['read', 'api'] (method + class merged)
146
+ * ```
147
+ */
148
+ getAllAndMerge(decorator, target, propertyKey) {
149
+ const result = [];
150
+ if (propertyKey !== void 0) {
151
+ const methodLevel = this.get(decorator, target, propertyKey);
152
+ if (methodLevel !== void 0) {
153
+ if (Array.isArray(methodLevel)) result.push(...methodLevel);
154
+ else result.push(methodLevel);
155
+ }
156
+ }
157
+ const classLevel = this.get(decorator, target);
158
+ if (classLevel !== void 0) {
159
+ if (Array.isArray(classLevel)) result.push(...classLevel);
160
+ else result.push(classLevel);
161
+ }
162
+ return result;
163
+ }
164
+ };
165
+
166
+ // src/decorators/public.ts
167
+ var PUBLIC_ROUTE_METADATA = "theokit:public";
168
+ var Public = /* @__PURE__ */ __name(() => SetMetadata(PUBLIC_ROUTE_METADATA, true), "Public");
169
+
170
+ // src/route-access.ts
171
+ function classifyAccess(declared) {
172
+ if (declared.access !== void 0) return declared.access;
173
+ return declared.guards !== void 0 && declared.guards.length > 0 ? "guarded" : "undeclared";
174
+ }
175
+ __name(classifyAccess, "classifyAccess");
176
+ var declareOpen = /* @__PURE__ */ __name((kind) => kind === "agent" ? "`access: 'public'`" : "`@Public()`", "declareOpen");
177
+ function undeclaredRouteWarning(kind, route) {
178
+ return `[theokit] ${kind} route ${route} declares no access decision and is served to anyone because \`undeclaredRoutes: 'warn'\` is set. Declare one: attach a guard, or say it is open on purpose (${declareOpen(kind)}). Dropping the option refuses it with 403.`;
179
+ }
180
+ __name(undeclaredRouteWarning, "undeclaredRouteWarning");
181
+ function undeclaredRouteRefusal(kind, route) {
182
+ return `${kind === "agent" ? "Agent" : "Controller"} route ${route} declares no access decision, so it is refused. Attach a guard, or say it is open on purpose (${declareOpen(kind)}). \`undeclaredRoutes: 'warn'\` serves it with a warning while you migrate.`;
183
+ }
184
+ __name(undeclaredRouteRefusal, "undeclaredRouteRefusal");
185
+
186
+ // src/bridge/dto-zod.ts
187
+ function resolveDtoSchema(dtoClass) {
188
+ if (typeof dtoClass !== "function") return void 0;
189
+ const maybe = dtoClass.schema;
190
+ if (maybe !== null && maybe !== void 0 && typeof maybe.safeParse === "function") {
191
+ return maybe;
192
+ }
193
+ return void 0;
194
+ }
195
+ __name(resolveDtoSchema, "resolveDtoSchema");
196
+
197
+ // src/bridge/walk-metadata.ts
198
+ import "reflect-metadata";
199
+ function joinPath(prefix, path) {
200
+ return ("/" + prefix + "/" + path).replace(/\/+/g, "/").replace(/\/$/, "") || "/";
201
+ }
202
+ __name(joinPath, "joinPath");
203
+ function resolveBodySchema(paramEntries, ControllerClass, propertyKey) {
204
+ const bodyParam = paramEntries.find((p) => p.source === "body" && !p.key);
205
+ if (!bodyParam) return void 0;
206
+ if (bodyParam.schema) return bodyParam.schema;
207
+ const paramTypes = Reflect.getMetadata("design:paramtypes", ControllerClass.prototype, propertyKey) ?? [];
208
+ if (paramTypes.length > 0) {
209
+ return resolveDtoSchema(paramTypes[bodyParam.index]);
210
+ }
211
+ console.warn(`[@theokit/http] method ${String(propertyKey)} on ${ControllerClass.name}: @Body() without explicit schema and emitDecoratorMetadata is not active. Body will be passed raw (no validation). Fix: use @Body(zodSchema) for validation without metadata emission.`);
212
+ return void 0;
213
+ }
214
+ __name(resolveBodySchema, "resolveBodySchema");
215
+ function declaredAccess(ControllerClass, propertyKey, guards) {
216
+ const isPublic = Reflect.getMetadata(PUBLIC_ROUTE_METADATA, ControllerClass) === true || Reflect.getMetadata(PUBLIC_ROUTE_METADATA, ControllerClass, propertyKey) === true;
217
+ return classifyAccess({
218
+ access: isPublic ? "public" : void 0,
219
+ guards
220
+ });
221
+ }
222
+ __name(declaredAccess, "declaredAccess");
223
+ var walkCache = /* @__PURE__ */ new WeakMap();
224
+ function walkControllerMetadata(ControllerClass) {
225
+ const cached = walkCache.get(ControllerClass);
226
+ if (cached) return cached;
227
+ const controllerMeta = getMeta(CONTROLLER_PREFIX, ControllerClass);
228
+ if (!controllerMeta) {
229
+ throw new HttpDecoratorsConfigError(`Controller class ${ControllerClass.name} is missing @Controller() decorator. Add @Controller('prefix') to the class declaration.`);
230
+ }
231
+ const { prefix, host } = controllerMeta;
232
+ if (host) {
233
+ console.warn(`[@theokit/http] @Controller host '${host}' captured but enforcement deferred to v0.2.0`);
234
+ }
235
+ const methods = getMeta(ROUTE_METHODS, ControllerClass) ?? [];
236
+ const paramsMap = getMeta(ROUTE_PARAMS, ControllerClass) ?? /* @__PURE__ */ new Map();
237
+ const classGuards = getMeta(USE_GUARDS, ControllerClass) ?? [];
238
+ const classInterceptors = getMeta(USE_INTERCEPTORS, ControllerClass) ?? [];
239
+ const classFilters = getMeta(USE_FILTERS, ControllerClass) ?? [];
240
+ const result = methods.map((m) => {
241
+ const paramEntries = paramsMap.get(m.propertyKey) ?? [];
242
+ const bodySchema = resolveBodySchema(paramEntries, ControllerClass, m.propertyKey);
243
+ const methodGuards = getMeta(USE_GUARDS, ControllerClass, m.propertyKey) ?? [];
244
+ const methodInterceptors = getMeta(USE_INTERCEPTORS, ControllerClass, m.propertyKey) ?? [];
245
+ return {
246
+ verb: m.verb,
247
+ fullPath: joinPath(prefix, m.path),
248
+ propertyKey: m.propertyKey,
249
+ bodySchema,
250
+ paramEntries: [
251
+ ...paramEntries
252
+ ].sort((a, b) => a.index - b.index),
253
+ status: getMeta(ROUTE_STATUS, ControllerClass, m.propertyKey),
254
+ headers: getMeta(ROUTE_HEADERS, ControllerClass, m.propertyKey) ?? [],
255
+ redirect: getMeta(ROUTE_REDIRECT, ControllerClass, m.propertyKey),
256
+ guards: [
257
+ ...classGuards,
258
+ ...methodGuards
259
+ ],
260
+ interceptors: [
261
+ ...classInterceptors,
262
+ ...methodInterceptors
263
+ ],
264
+ filters: getMeta(USE_FILTERS, ControllerClass, m.propertyKey) ?? classFilters,
265
+ access: declaredAccess(ControllerClass, m.propertyKey, [
266
+ ...classGuards,
267
+ ...methodGuards
268
+ ])
269
+ };
270
+ });
271
+ const exposeEntries = getMeta(EXPOSE_AGENT, ControllerClass) ?? [];
272
+ const agentResults = exposeEntries.map((e) => {
273
+ const memberGuards = getMeta(USE_GUARDS, ControllerClass, e.propertyKey) ?? [];
274
+ const verb = "POST";
275
+ return {
276
+ verb,
277
+ fullPath: joinPath(prefix, String(e.propertyKey)),
278
+ propertyKey: e.propertyKey,
279
+ paramEntries: [],
280
+ headers: [],
281
+ guards: [
282
+ ...classGuards,
283
+ ...memberGuards
284
+ ],
285
+ interceptors: [],
286
+ filters: classFilters,
287
+ access: declaredAccess(ControllerClass, e.propertyKey, [
288
+ ...classGuards,
289
+ ...memberGuards
290
+ ]),
291
+ agent: {
292
+ module: e.agent,
293
+ opts: e.opts
294
+ }
295
+ };
296
+ });
297
+ const all = [
298
+ ...result,
299
+ ...agentResults
300
+ ];
301
+ walkCache.set(ControllerClass, all);
302
+ return all;
303
+ }
304
+ __name(walkControllerMetadata, "walkControllerMetadata");
305
+
306
+ export {
307
+ HttpDecoratorsConfigError,
308
+ createExecutionContext,
309
+ createDecorator,
310
+ SetMetadata,
311
+ Reflector,
312
+ PUBLIC_ROUTE_METADATA,
313
+ Public,
314
+ classifyAccess,
315
+ undeclaredRouteWarning,
316
+ undeclaredRouteRefusal,
317
+ resolveDtoSchema,
318
+ joinPath,
319
+ walkControllerMetadata
320
+ };
321
+ //# sourceMappingURL=chunk-R72YKDQ4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bridge/errors.ts","../src/bridge/execution-context.ts","../src/decorators/set-metadata.ts","../src/decorators/public.ts","../src/route-access.ts","../src/bridge/dto-zod.ts","../src/bridge/walk-metadata.ts"],"mappings":"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","names":["HttpDecoratorsConfigError","Error","name","message","createExecutionContext","request","controllerClass","methodName","url","URL","getRequest","getUrl","getClass","getMethodName","decoratorKeyCounter","createDecorator","key","Symbol","for","decorator","value","target","propertyKey","metaTarget","undefined","Reflect","defineMetadata","SetMetadata","metaKey","Reflector","get","getMetadata","getByKey","getAllAndOverride","methodLevel","getAllAndOverrideByKey","getAllAndMerge","result","Array","isArray","push","classLevel","PUBLIC_ROUTE_METADATA","Public","SetMetadata","classifyAccess","declared","access","undefined","guards","length","declareOpen","kind","undeclaredRouteWarning","route","undeclaredRouteRefusal","resolveDtoSchema","dtoClass","undefined","maybe","schema","safeParse","joinPath","prefix","path","replace","resolveBodySchema","paramEntries","ControllerClass","propertyKey","bodyParam","find","p","source","key","undefined","schema","paramTypes","Reflect","getMetadata","prototype","length","resolveDtoSchema","index","console","warn","String","name","declaredAccess","guards","isPublic","PUBLIC_ROUTE_METADATA","classifyAccess","access","walkCache","WeakMap","walkControllerMetadata","cached","get","controllerMeta","getMeta","CONTROLLER_PREFIX","HttpDecoratorsConfigError","host","methods","ROUTE_METHODS","paramsMap","ROUTE_PARAMS","Map","classGuards","USE_GUARDS","classInterceptors","USE_INTERCEPTORS","classFilters","USE_FILTERS","result","map","m","bodySchema","methodGuards","methodInterceptors","verb","fullPath","sort","a","b","status","ROUTE_STATUS","headers","ROUTE_HEADERS","redirect","ROUTE_REDIRECT","interceptors","filters","exposeEntries","EXPOSE_AGENT","agentResults","e","memberGuards","agent","module","opts","all","set"]}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  import { D as DiContainer, M as MiddlewareConsumerImpl } from './middleware-consumer-DcaksawH.js';
3
3
  export { a as MiddlewareConfigProxy, b as MiddlewareFn, N as NestMiddleware, R as ResolvedMiddleware, m as middlewareMatchesPath, r as resolveOrNew, c as runMiddleware } from './middleware-consumer-DcaksawH.js';
4
+ import { A as AccessDecision, U as UndeclaredRoutePolicy } from './route-access-Bq7eKXIc.js';
5
+ export { c as classifyAccess, u as undeclaredRouteRefusal, a as undeclaredRouteWarning } from './route-access-Bq7eKXIc.js';
4
6
  import { S as ServerHandle } from './types-CGthbcon.js';
5
7
  export { ReadinessCheck, TheoApp, TheoAppOptions } from './app.js';
6
8
  import * as ReactTypes from 'react';
@@ -411,6 +413,19 @@ interface WalkResult {
411
413
  guards: Function[];
412
414
  interceptors: Function[];
413
415
  filters: Function[];
416
+ /**
417
+ * What this route said about who may call it — decided HERE, once (usetheokit/theokit#576).
418
+ *
419
+ * Every controller dispatcher in this package consumes a `WalkResult`: `TheoApp`,
420
+ * `createDecoratorHandler` (which the framework's own controller dispatch reuses) and
421
+ * `httpDecoratorsPlugin`. Only the first of them classified access, and it did so by re-reading
422
+ * the metadata itself — so the other two served an undeclared route no matter what the app had
423
+ * configured, and a fourth dispatcher would have shipped with the same hole.
424
+ *
425
+ * Computing it on the walk is what makes "a route nobody declared is refused" a property of the
426
+ * package rather than of whichever dispatcher someone remembered to patch.
427
+ */
428
+ access: AccessDecision;
414
429
  /**
415
430
  * M47 — set when the member is bound via `@Expose(agent, opts)`. The dispatcher delegates such routes to
416
431
  * the agent runtime (`mountAgent`) instead of invoking a JSON handler. `undefined` for normal verb routes.
@@ -513,6 +528,17 @@ interface CreateDecoratorServerOptions {
513
528
  configure?: (consumer: MiddlewareConsumerImpl) => void;
514
529
  /** M47 — required when any controller `@Expose`-binds an agent; serves the agent route. */
515
530
  serveAgent?: ServeAgent;
531
+ /**
532
+ * What to do with a controller route that declared no access decision (#576).
533
+ *
534
+ * `'deny'` (default) refuses with 403. `'warn'` serves it after saying so once per route.
535
+ *
536
+ * This seam is where least privilege has to hold, not only `TheoApp`: the framework's own
537
+ * controller dispatch reuses this handler, `theokit dev` never runs the build gate that refuses
538
+ * an undeclared controller, and `@theokit/http` is published on its own. A gate that lives in one
539
+ * of three dispatchers is a lint, which is exactly what #576 reported.
540
+ */
541
+ undeclaredRoutes?: UndeclaredRoutePolicy;
516
542
  }
517
543
  /**
518
544
  * A pure Web-Standard controller handler: callable as `(request) => Response | null`
@@ -1454,4 +1480,4 @@ declare function revalidatePath(path: string): void;
1454
1480
  */
1455
1481
  declare function getRevalidationSignals(): RevalidationSignal[];
1456
1482
 
1457
- export { All, type ArgumentsHost, BadGatewayException, BadRequestException, Body, CATCH_EXCEPTIONS, CONTROLLER_PREFIX, type CanActivate, Catch, ConflictException, Controller, type ControllerMeta, type ControllerOptions, type CreateDecoratorServerOptions, type DecoratorHandler, Delete, DiContainer, type DigestedError, EXPOSE_AGENT, type ErrorContext, type ExceptionFilter, type ExecutionContext, Expose, type ExposeEntry, type ExposeOptions, ForbiddenException, GatewayTimeoutException, Get, GoneException, Head, Header, Headers, HostParam, HttpCode, HttpDecoratorsConfigError, HttpException, type HttpExceptionOptions, HttpStatus, type HttpStatusCode, type HttpVerb, HttpVersionNotSupportedException, ImATeapotException, type Interceptor, InternalServerErrorException, Ip, type MetadataKey, MethodNotAllowedException, MiddlewareConsumerImpl, NotAcceptableException, NotFoundException, NotImplementedException, Options, PUBLIC_ROUTE_METADATA, Param, type ParamEntry, type ParamSource, Patch, PayloadTooLargeException, Post, PreconditionFailedException, Public, Put, Query, ROUTE_HEADERS, ROUTE_METHODS, ROUTE_PARAMS, ROUTE_REDIRECT, ROUTE_STATUS, Redirect, type RedirectMeta, Reflector, Req, RequestTimeoutException, Res, type RevalidationSignal, type RouteDefinition, type RouteMap, type RouteMethodEntry, type RouteRegistration, type RouteTree, type ServeAgent, ServiceUnavailableException, Session, SetMetadata, SkipThrottle, type StaticOptions, type StreamRenderOptions, type StreamRenderResult, type SwcCore, type TheoRequestContext, Throttle, type ThrottleOptions, TooManyRequestsException, type TypedClient, TypedClientError, USE_FILTERS, USE_GUARDS, USE_INTERCEPTORS, UnauthorizedException, UnprocessableEntityException, UnsupportedMediaTypeException, UseFilters, UseGuards, UseInterceptors, type WalkResult, composeComponentTree, contract, createDecorator, createDecoratorHandler, createDecoratorServer, createExecutionContext, createStaticHandler, createTypedClient, digestError, getMeta, getMimeType, getRequestContext, getRevalidationSignals, getThrottleOptions, isControllerClass, isSafePath, isThrottleSkipped, joinPath, loadControllerWithSwc, loadControllersFromGlob, registerControllers, renderToStream, resolveDtoSchema, revalidatePath, revalidateTag, runExceptionFilters, runInterceptors, setMeta, streamToResponse, transformControllerSource, tryGetRequestContext, walkControllerMetadata };
1483
+ export { AccessDecision, All, type ArgumentsHost, BadGatewayException, BadRequestException, Body, CATCH_EXCEPTIONS, CONTROLLER_PREFIX, type CanActivate, Catch, ConflictException, Controller, type ControllerMeta, type ControllerOptions, type CreateDecoratorServerOptions, type DecoratorHandler, Delete, DiContainer, type DigestedError, EXPOSE_AGENT, type ErrorContext, type ExceptionFilter, type ExecutionContext, Expose, type ExposeEntry, type ExposeOptions, ForbiddenException, GatewayTimeoutException, Get, GoneException, Head, Header, Headers, HostParam, HttpCode, HttpDecoratorsConfigError, HttpException, type HttpExceptionOptions, HttpStatus, type HttpStatusCode, type HttpVerb, HttpVersionNotSupportedException, ImATeapotException, type Interceptor, InternalServerErrorException, Ip, type MetadataKey, MethodNotAllowedException, MiddlewareConsumerImpl, NotAcceptableException, NotFoundException, NotImplementedException, Options, PUBLIC_ROUTE_METADATA, Param, type ParamEntry, type ParamSource, Patch, PayloadTooLargeException, Post, PreconditionFailedException, Public, Put, Query, ROUTE_HEADERS, ROUTE_METHODS, ROUTE_PARAMS, ROUTE_REDIRECT, ROUTE_STATUS, Redirect, type RedirectMeta, Reflector, Req, RequestTimeoutException, Res, type RevalidationSignal, type RouteDefinition, type RouteMap, type RouteMethodEntry, type RouteRegistration, type RouteTree, type ServeAgent, ServiceUnavailableException, Session, SetMetadata, SkipThrottle, type StaticOptions, type StreamRenderOptions, type StreamRenderResult, type SwcCore, type TheoRequestContext, Throttle, type ThrottleOptions, TooManyRequestsException, type TypedClient, TypedClientError, USE_FILTERS, USE_GUARDS, USE_INTERCEPTORS, UnauthorizedException, UndeclaredRoutePolicy, UnprocessableEntityException, UnsupportedMediaTypeException, UseFilters, UseGuards, UseInterceptors, type WalkResult, composeComponentTree, contract, createDecorator, createDecoratorHandler, createDecoratorServer, createExecutionContext, createStaticHandler, createTypedClient, digestError, getMeta, getMimeType, getRequestContext, getRevalidationSignals, getThrottleOptions, isControllerClass, isSafePath, isThrottleSkipped, joinPath, loadControllerWithSwc, loadControllersFromGlob, registerControllers, renderToStream, resolveDtoSchema, revalidatePath, revalidateTag, runExceptionFilters, runInterceptors, setMeta, streamToResponse, transformControllerSource, tryGetRequestContext, walkControllerMetadata };
package/dist/index.js CHANGED
@@ -1,10 +1,5 @@
1
1
  import {
2
- PUBLIC_ROUTE_METADATA,
3
- Public,
4
- Reflector,
5
- SetMetadata,
6
2
  TheoApp,
7
- createDecorator,
8
3
  createStaticHandler,
9
4
  getMimeType,
10
5
  getRequestContext,
@@ -12,7 +7,7 @@ import {
12
7
  renderToStream,
13
8
  streamToResponse,
14
9
  tryGetRequestContext
15
- } from "./chunk-NFCIOKAI.js";
10
+ } from "./chunk-6HVQHSPX.js";
16
11
  import {
17
12
  MiddlewareConsumerImpl,
18
13
  isControllerClass,
@@ -22,17 +17,25 @@ import {
22
17
  resolveBody,
23
18
  runMiddleware,
24
19
  transformControllerSource
25
- } from "./chunk-6CFF7Q4Z.js";
20
+ } from "./chunk-BXJBQ4EH.js";
26
21
  import {
27
22
  runExceptionFilters
28
23
  } from "./chunk-HC47QXZV.js";
29
24
  import {
30
25
  HttpDecoratorsConfigError,
26
+ PUBLIC_ROUTE_METADATA,
27
+ Public,
28
+ Reflector,
29
+ SetMetadata,
30
+ classifyAccess,
31
+ createDecorator,
31
32
  createExecutionContext,
32
33
  joinPath,
33
34
  resolveDtoSchema,
35
+ undeclaredRouteRefusal,
36
+ undeclaredRouteWarning,
34
37
  walkControllerMetadata
35
- } from "./chunk-X7Q5HPLK.js";
38
+ } from "./chunk-R72YKDQ4.js";
36
39
  import {
37
40
  BadGatewayException,
38
41
  BadRequestException,
@@ -380,12 +383,15 @@ __name(extractStack, "extractStack");
380
383
 
381
384
  // src/bridge/create-server.ts
382
385
  function createDecoratorHandler(controllersOrOpts) {
383
- const { controllers, container, configure, serveAgent } = Array.isArray(controllersOrOpts) ? {
386
+ const { controllers, container, configure, serveAgent, undeclaredRoutes } = Array.isArray(controllersOrOpts) ? {
384
387
  controllers: controllersOrOpts,
385
388
  container: void 0,
386
389
  configure: void 0,
387
- serveAgent: void 0
390
+ serveAgent: void 0,
391
+ undeclaredRoutes: void 0
388
392
  } : controllersOrOpts;
393
+ const undeclaredPolicy = undeclaredRoutes ?? "deny";
394
+ const warnedUndeclared = /* @__PURE__ */ new Set();
389
395
  const middlewareConsumer = new MiddlewareConsumerImpl(container);
390
396
  if (configure) configure(middlewareConsumer);
391
397
  const middlewareEntries = middlewareConsumer.getEntries();
@@ -425,7 +431,16 @@ function createDecoratorHandler(controllersOrOpts) {
425
431
  if (aP !== bP) return aP ? 1 : -1;
426
432
  return 0;
427
433
  });
428
- const handler = /* @__PURE__ */ __name((request) => handleRequest(routes, request, container, middlewareEntries, serveAgent), "handler");
434
+ const dispatchDeps = {
435
+ container,
436
+ middlewareEntries,
437
+ serveAgent,
438
+ undeclared: {
439
+ policy: undeclaredPolicy,
440
+ warned: warnedUndeclared
441
+ }
442
+ };
443
+ const handler = /* @__PURE__ */ __name((request) => handleRequest(routes, request, dispatchDeps), "handler");
429
444
  handler.matches = (method, pathname) => findRoute(routes, method.toUpperCase(), pathname) !== null;
430
445
  return handler;
431
446
  }
@@ -446,7 +461,8 @@ function createDecoratorServer(controllersOrOpts) {
446
461
  });
447
462
  }
448
463
  __name(createDecoratorServer, "createDecoratorServer");
449
- async function handleRequest(routes, request, container, middlewareEntries = [], serveAgent) {
464
+ async function handleRequest(routes, request, deps) {
465
+ const { container, middlewareEntries, serveAgent, undeclared } = deps;
450
466
  const url = new URL(request.url);
451
467
  const method = request.method.toUpperCase();
452
468
  const pathname = url.pathname;
@@ -478,6 +494,16 @@ async function handleRequest(routes, request, container, middlewareEntries = [],
478
494
  try {
479
495
  const mwResponse = await runMiddleware(middlewareEntries, request, pathname);
480
496
  if (mwResponse) return mwResponse;
497
+ if (walk.access === "undeclared") {
498
+ if (undeclared.policy === "deny") {
499
+ const ex = new ForbiddenException(undeclaredRouteRefusal("controller", pathname));
500
+ return jsonResponse(ex.statusCode, ex.toJSON());
501
+ }
502
+ if (!undeclared.warned.has(pathname)) {
503
+ undeclared.warned.add(pathname);
504
+ console.warn(undeclaredRouteWarning("controller", pathname));
505
+ }
506
+ }
481
507
  const ctx = createExecutionContext(request, instance.constructor, walk.propertyKey);
482
508
  const guardResponse = await runGuards(walk.guards, ctx, container);
483
509
  if (guardResponse) return guardResponse;
@@ -840,6 +866,7 @@ export {
840
866
  UseFilters,
841
867
  UseGuards,
842
868
  UseInterceptors,
869
+ classifyAccess,
843
870
  composeComponentTree,
844
871
  contract,
845
872
  createDecorator,
@@ -874,6 +901,8 @@ export {
874
901
  streamToResponse,
875
902
  transformControllerSource,
876
903
  tryGetRequestContext,
904
+ undeclaredRouteRefusal,
905
+ undeclaredRouteWarning,
877
906
  walkControllerMetadata
878
907
  };
879
908
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/decorators/controller.ts","../src/decorators/methods.ts","../src/decorators/params.ts","../src/decorators/expose.ts","../src/decorators/response.ts","../src/decorators/middleware.ts","../src/decorators/throttle.ts","../src/bridge/register-controllers.ts","../src/bridge/create-server.ts","../src/error-digest.ts","../src/typed-client.ts","../src/contract.ts","../src/component-tree.ts","../src/cache-signal.ts"],"mappings":"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","names":["inferPrefix","className","stripped","replace","kebab","toLowerCase","Controller","prefixOrOpts","maybeOpts","target","prefix","opts","name","setMeta","CONTROLLER_PREFIX","host","makeVerbDecorator","verb","path","target","propertyKey","existing","getMeta","ROUTE_METHODS","push","setMeta","Get","Post","Put","Patch","Delete","Options","Head","All","isZodSchema","v","undefined","safeParse","makeParamDecorator","source","keyOrSchema","target","propertyKey","parameterIndex","map","getMeta","ROUTE_PARAMS","Map","entries","get","entry","index","key","schema","push","set","setMeta","Req","Body","Param","Query","Headers","Session","Ip","HostParam","Res","opts","passthrough","Expose","agent","opts","target","propertyKey","existing","getMeta","EXPOSE_AGENT","push","setMeta","HttpCode","status","target","propertyKey","setMeta","ROUTE_STATUS","Header","name","value","existing","getMeta","ROUTE_HEADERS","push","Redirect","url","ROUTE_REDIRECT","UseGuards","guards","target","propertyKey","actualTarget","existing","getMeta","USE_GUARDS","setMeta","UseInterceptors","interceptors","USE_INTERCEPTORS","UseFilters","filters","USE_FILTERS","Catch","exceptions","CATCH_EXCEPTIONS","THROTTLE_KEY","Symbol","for","SKIP_THROTTLE_KEY","Throttle","options","target","propertyKey","actualTarget","undefined","setMeta","SkipThrottle","skip","getThrottleOptions","getMeta","isThrottleSkipped","registerControllers","controllers","seen","Set","unique","Ctor","has","console","warn","name","add","push","flatMap","walks","walkControllerMetadata","map","w","verb","fullPath","walkResult","djb2","input","hash","i","length","charCodeAt","toString","digestError","err","context","message","extractMessage","status","extractStatus","rawStack","extractStack","digest","isProduction","process","env","NODE_ENV","stack","Error","String","JSON","stringify","HttpException","statusCode","undefined","createDecoratorHandler","controllersOrOpts","controllers","container","configure","serveAgent","Array","isArray","undefined","middlewareConsumer","MiddlewareConsumerImpl","middlewareEntries","getEntries","seen","Set","unique","Ctor","has","add","push","routes","built","instance","resolveOrNew","error","failure","controllerName","name","console","Error","message","String","walk","walkControllerMetadata","sort","a","b","aP","fullPath","includes","bP","handler","request","handleRequest","matches","method","pathname","findRoute","toUpperCase","createDecoratorServer","handle","adapter","createNodeAdapter","createServer","res","URL","url","jsonResponse","code","match","params","digested","digestError","route","phase","source","digest","stack","mwResponse","runMiddleware","ctx","createExecutionContext","propertyKey","guardResponse","runGuards","guards","agent","module","opts","body","resolveBody","Response","args","buildArgs","paramEntries","query","Object","fromEntries","searchParams","redirect","status","headers","location","handlerFn","result","runInterceptors","interceptors","apply","buildResponse","err","runExceptionFilters","filters","context","GuardCtor","guard","allowed","canActivate","ex","ForbiddenException","statusCode","toJSON","value","toLowerCase","JSON","stringify","entry","verb","matchPath","pattern","paramNames","regexStr","replace","_m","RegExp","exec","forEach","i","length","maxIndex","Math","max","map","p","index","from","key","get","entries","createTypedClient","baseUrl","defaultHeaders","request","method","path","body","opts","url","URL","query","k","v","Object","entries","searchParams","set","headers","undefined","res","fetch","toString","JSON","stringify","ok","error","json","catch","message","statusText","TypedClientError","status","get","post","put","delete","Error","name","contract","routes","createErrorBoundary","React","FallbackComponent","ErrorBoundary","Component","props","state","hasError","getDerivedStateFromError","render","createElement","Fragment","children","composeComponentTree","tree","composeNode","node","layout","Layout","page","Page","loading","Loading","error","ErrorFallback","element","Suspense","fallback","Boundary","revalidateTag","tag","collectSignal","kind","value","timestamp","Date","now","revalidatePath","path","getRevalidationSignals","ctx","tryGetRequestContext","_revalidationSignals","signal","console","warn","extended","push"]}
1
+ {"version":3,"sources":["../src/decorators/controller.ts","../src/decorators/methods.ts","../src/decorators/params.ts","../src/decorators/expose.ts","../src/decorators/response.ts","../src/decorators/middleware.ts","../src/decorators/throttle.ts","../src/bridge/register-controllers.ts","../src/bridge/create-server.ts","../src/error-digest.ts","../src/typed-client.ts","../src/contract.ts","../src/component-tree.ts","../src/cache-signal.ts"],"mappings":"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","names":["inferPrefix","className","stripped","replace","kebab","toLowerCase","Controller","prefixOrOpts","maybeOpts","target","prefix","opts","name","setMeta","CONTROLLER_PREFIX","host","makeVerbDecorator","verb","path","target","propertyKey","existing","getMeta","ROUTE_METHODS","push","setMeta","Get","Post","Put","Patch","Delete","Options","Head","All","isZodSchema","v","undefined","safeParse","makeParamDecorator","source","keyOrSchema","target","propertyKey","parameterIndex","map","getMeta","ROUTE_PARAMS","Map","entries","get","entry","index","key","schema","push","set","setMeta","Req","Body","Param","Query","Headers","Session","Ip","HostParam","Res","opts","passthrough","Expose","agent","opts","target","propertyKey","existing","getMeta","EXPOSE_AGENT","push","setMeta","HttpCode","status","target","propertyKey","setMeta","ROUTE_STATUS","Header","name","value","existing","getMeta","ROUTE_HEADERS","push","Redirect","url","ROUTE_REDIRECT","UseGuards","guards","target","propertyKey","actualTarget","existing","getMeta","USE_GUARDS","setMeta","UseInterceptors","interceptors","USE_INTERCEPTORS","UseFilters","filters","USE_FILTERS","Catch","exceptions","CATCH_EXCEPTIONS","THROTTLE_KEY","Symbol","for","SKIP_THROTTLE_KEY","Throttle","options","target","propertyKey","actualTarget","undefined","setMeta","SkipThrottle","skip","getThrottleOptions","getMeta","isThrottleSkipped","registerControllers","controllers","seen","Set","unique","Ctor","has","console","warn","name","add","push","flatMap","walks","walkControllerMetadata","map","w","verb","fullPath","walkResult","djb2","input","hash","i","length","charCodeAt","toString","digestError","err","context","message","extractMessage","status","extractStatus","rawStack","extractStack","digest","isProduction","process","env","NODE_ENV","stack","Error","String","JSON","stringify","HttpException","statusCode","undefined","createDecoratorHandler","controllersOrOpts","controllers","container","configure","serveAgent","undeclaredRoutes","Array","isArray","undefined","undeclaredPolicy","warnedUndeclared","Set","middlewareConsumer","MiddlewareConsumerImpl","middlewareEntries","getEntries","seen","unique","Ctor","has","add","push","routes","built","instance","resolveOrNew","error","failure","controllerName","name","console","Error","message","String","walk","walkControllerMetadata","sort","a","b","aP","fullPath","includes","bP","dispatchDeps","undeclared","policy","warned","handler","request","handleRequest","matches","method","pathname","findRoute","toUpperCase","createDecoratorServer","handle","adapter","createNodeAdapter","createServer","res","URL","url","jsonResponse","code","deps","match","params","digested","digestError","route","phase","source","digest","stack","mwResponse","runMiddleware","access","ex","ForbiddenException","undeclaredRouteRefusal","statusCode","toJSON","warn","undeclaredRouteWarning","ctx","createExecutionContext","propertyKey","guardResponse","runGuards","guards","agent","module","opts","body","resolveBody","Response","args","buildArgs","paramEntries","query","Object","fromEntries","searchParams","redirect","status","headers","location","handlerFn","result","runInterceptors","interceptors","apply","buildResponse","err","runExceptionFilters","filters","context","GuardCtor","guard","allowed","canActivate","value","toLowerCase","JSON","stringify","entry","verb","matchPath","pattern","paramNames","regexStr","replace","_m","RegExp","exec","forEach","i","length","maxIndex","Math","max","map","p","index","from","key","get","entries","createTypedClient","baseUrl","defaultHeaders","request","method","path","body","opts","url","URL","query","k","v","Object","entries","searchParams","set","headers","undefined","res","fetch","toString","JSON","stringify","ok","error","json","catch","message","statusText","TypedClientError","status","get","post","put","delete","Error","name","contract","routes","createErrorBoundary","React","FallbackComponent","ErrorBoundary","Component","props","state","hasError","getDerivedStateFromError","render","createElement","Fragment","children","composeComponentTree","tree","composeNode","node","layout","Layout","page","Page","loading","Loading","error","ErrorFallback","element","Suspense","fallback","Boundary","revalidateTag","tag","collectSignal","kind","value","timestamp","Date","now","revalidatePath","path","getRevalidationSignals","ctx","tryGetRequestContext","_revalidationSignals","signal","console","warn","extended","push"]}