@theokit/http 1.1.2 → 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,77 @@
1
+ /**
2
+ * Whether a route DECLARED an access decision, or nobody said (usetheokit/theokit#576).
3
+ *
4
+ * ## The ambiguity this removes
5
+ *
6
+ * `guards: []` meant two different things and the dispatcher could not tell them apart:
7
+ *
8
+ * - *this route is open on purpose*, and
9
+ * - *nobody said*.
10
+ *
11
+ * Faced with both readings it took the permissive one and served. For controllers that was safe
12
+ * only because a separate build gate (#514) refuses an undeclared controller route — which makes
13
+ * least privilege a property of the PIPELINE rather than of the system. Anything reaching a
14
+ * dispatcher without having run that build is served, and `@theokit/http` is published on its own,
15
+ * so "without having run that build" is an ordinary way to use it.
16
+ *
17
+ * Agent routes had neither. They are auto-wired — the app never wrote them, so there is no file for
18
+ * a reviewer to read — dispatched BEFORE controllers and file routes, and covered by no gate at
19
+ * all. An agent authored through capabilities has no class, so it takes no `@UseGuards`, so
20
+ * `guards` was `undefined`, so `?? []`, so served.
21
+ *
22
+ * The fix is not a new guard. It is making absence REPRESENTABLE, so a decision can be told from
23
+ * its residue — and then REFUSING it, so the property belongs to the system rather than to
24
+ * whichever command happened to run the build gate.
25
+ */
26
+ /** What a route says about who may call it. */
27
+ type AccessDecision =
28
+ /** Anyone may call it, on purpose. */
29
+ 'public'
30
+ /** At least one guard decides. */
31
+ | 'guarded'
32
+ /** Nobody said — the state that used to be indistinguishable from `'public'`. */
33
+ | 'undeclared';
34
+ /**
35
+ * How an app answers a route that declared nothing.
36
+ *
37
+ * `'deny'` is the default and refuses with 403. `'warn'` serves the request after saying so once,
38
+ * loudly, at the first dispatch — the migration escape, and nothing else.
39
+ *
40
+ * The default was `'warn'` for one release, so that flipping it did not break every app whose
41
+ * agent endpoints were open, inside a patch. It is `'deny'` from `@theokit/http@2.0.0`, which is
42
+ * the major that release bought: a safe default an app has to switch on is not a safe default, and
43
+ * the population that never reads the warning is exactly the population #576 is about.
44
+ */
45
+ type UndeclaredRoutePolicy = 'warn' | 'deny';
46
+ /**
47
+ * Classify one route from what its author declared.
48
+ *
49
+ * `access` is the explicit answer and wins. Otherwise a NON-EMPTY `guards` IS a declaration — the
50
+ * author named who decides — and an empty or absent one is nobody having said.
51
+ *
52
+ * "Non-empty" and not "present" is deliberate, and it is the one place this can drift from the
53
+ * build gate: `@UseGuards()` with no arguments writes `[]`, which reads as a declaration to anyone
54
+ * skimming the file and decides nothing at dispatch. Both gates refuse it (#576).
55
+ */
56
+ declare function classifyAccess(declared: {
57
+ access?: Exclude<AccessDecision, 'undeclared'>;
58
+ guards?: readonly unknown[];
59
+ }): AccessDecision;
60
+ /**
61
+ * The line printed once per undeclared route that is nonetheless served.
62
+ *
63
+ * Only reachable under an explicit `undeclaredRoutes: 'warn'`, which is the whole point: the
64
+ * default refuses, and an app that opted back into being served is told what it opted into. It
65
+ * names the route, because a warning that does not say WHICH route sends the reader grepping.
66
+ */
67
+ declare function undeclaredRouteWarning(kind: 'agent' | 'controller', route: string): string;
68
+ /**
69
+ * The 403 body for a route nobody declared.
70
+ *
71
+ * Separate from a guard REFUSING a caller, which is the system working, and it must read that way:
72
+ * an operator meeting this has a route to fix, not a caller to authenticate. It names both
73
+ * declarations and the escape, so the fix does not require finding this file.
74
+ */
75
+ declare function undeclaredRouteRefusal(kind: 'agent' | 'controller', route: string): string;
76
+
77
+ export { type AccessDecision as A, type UndeclaredRoutePolicy as U, undeclaredRouteWarning as a, classifyAccess as c, undeclaredRouteRefusal as u };
@@ -1,4 +1,5 @@
1
1
  import { D as DiContainer, M as MiddlewareConsumerImpl } from './middleware-consumer-DcaksawH.js';
2
+ import { U as UndeclaredRoutePolicy } from './route-access-Bq7eKXIc.js';
2
3
 
3
4
  /**
4
5
  * TheoKit integration plugin for @theokit/http.
@@ -45,6 +46,15 @@ interface HttpDecoratorsPluginOptions {
45
46
  container?: DiContainer;
46
47
  /** NestJS-style middleware configuration callback. */
47
48
  configure?: (consumer: MiddlewareConsumerImpl) => void;
49
+ /**
50
+ * What to do with a controller route that declared no access decision (#576).
51
+ *
52
+ * `'deny'` (default) refuses with 403. `'warn'` serves it after saying so once per route.
53
+ *
54
+ * Present here for the same reason it is on `TheoApp` and `createDecoratorHandler`: this is a
55
+ * third dispatcher over the same `WalkResult`, and a gate that holds in two of three is a lint.
56
+ */
57
+ undeclaredRoutes?: UndeclaredRoutePolicy;
48
58
  }
49
59
  /**
50
60
  * TheoKit plugin that mounts decorated controllers into the `theokit dev`
@@ -3,14 +3,16 @@ import {
3
3
  loadControllersFromGlob,
4
4
  resolveBody,
5
5
  runMiddleware
6
- } from "./chunk-6CFF7Q4Z.js";
6
+ } from "./chunk-BXJBQ4EH.js";
7
7
  import {
8
8
  runExceptionFilters
9
9
  } from "./chunk-HC47QXZV.js";
10
10
  import {
11
11
  createExecutionContext,
12
+ undeclaredRouteRefusal,
13
+ undeclaredRouteWarning,
12
14
  walkControllerMetadata
13
- } from "./chunk-X7Q5HPLK.js";
15
+ } from "./chunk-R72YKDQ4.js";
14
16
  import {
15
17
  ForbiddenException
16
18
  } from "./chunk-AJOJXZRY.js";
@@ -37,6 +39,11 @@ function httpDecoratorsPlugin(opts) {
37
39
  const middlewareConsumer = new MiddlewareConsumerImpl(opts.container);
38
40
  if (opts.configure) opts.configure(middlewareConsumer);
39
41
  const middlewareEntries = middlewareConsumer.getEntries();
42
+ const undeclared = {
43
+ policy: opts.undeclaredRoutes ?? "deny",
44
+ // Warned once per route, never per request — see `create-server.ts`.
45
+ warned: /* @__PURE__ */ new Set()
46
+ };
40
47
  if (opts.controllers && opts.controllers.length > 0) {
41
48
  buildRouteTable(routes, opts.controllers, opts.container);
42
49
  initialized = true;
@@ -58,7 +65,7 @@ function httpDecoratorsPlugin(opts) {
58
65
  if (initPromise && !initialized) await initPromise;
59
66
  const _nodeHttp = await import("http");
60
67
  const request = nodeIncomingToRequest(pluginCtx.request);
61
- const response = await handleDecoratorRoute(routes, request, opts.container, middlewareEntries);
68
+ const response = await handleDecoratorRoute(routes, request, undeclared, opts.container, middlewareEntries);
62
69
  if (response) {
63
70
  await writeResponseToNode(response, pluginCtx.response);
64
71
  }
@@ -96,7 +103,7 @@ function buildRouteTable(routes, controllers, container) {
96
103
  });
97
104
  }
98
105
  __name(buildRouteTable, "buildRouteTable");
99
- async function handleDecoratorRoute(routes, request, container, mwEntries = []) {
106
+ async function handleDecoratorRoute(routes, request, undeclared, container, mwEntries = []) {
100
107
  const url = new URL(request.url);
101
108
  const method = request.method.toUpperCase();
102
109
  const match = findMatch(routes, method, url.pathname);
@@ -106,6 +113,16 @@ async function handleDecoratorRoute(routes, request, container, mwEntries = [])
106
113
  try {
107
114
  const mwResponse = await runMiddleware(mwEntries, request, url.pathname);
108
115
  if (mwResponse) return mwResponse;
116
+ if (walk.access === "undeclared") {
117
+ if (undeclared.policy === "deny") {
118
+ const ex = new ForbiddenException(undeclaredRouteRefusal("controller", url.pathname));
119
+ return jsonResponse(ex.statusCode, ex.toJSON());
120
+ }
121
+ if (!undeclared.warned.has(url.pathname)) {
122
+ undeclared.warned.add(url.pathname);
123
+ console.warn(undeclaredRouteWarning("controller", url.pathname));
124
+ }
125
+ }
109
126
  const ctx = createExecutionContext(request, instance.constructor, walk.propertyKey);
110
127
  const guardResponse = await runGuards(walk.guards, ctx, container);
111
128
  if (guardResponse) return guardResponse;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theokit-plugin.ts"],"mappings":"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","names":["httpDecoratorsPlugin","opts","routes","initialized","initPromise","middlewareConsumer","MiddlewareConsumerImpl","container","configure","middlewareEntries","getEntries","controllers","length","buildRouteTable","controllersGlob","glob","rootDir","process","cwd","loadControllersFromGlob","console","log","name","register","app","addHook","pluginCtx","_nodeHttp","request","nodeIncomingToRequest","response","handleDecoratorRoute","writeResponseToNode","seen","Set","unique","Ctor","has","add","push","instance","resolveOrNew","walks","walkControllerMetadata","w","regex","paramNames","compilePattern","fullPath","walk","sort","a","b","aHasParam","includes","bHasParam","mwEntries","url","URL","method","toUpperCase","match","findMatch","pathname","entry","params","mwResponse","runMiddleware","ctx","createExecutionContext","propertyKey","guardResponse","runGuards","guards","body","resolveBody","jsonResponse","Response","args","buildArgs","paramEntries","query","Object","fromEntries","searchParams","redirect","status","headers","location","handlerFn","result","runInterceptors","interceptors","apply","buildResponse","err","runExceptionFilters","filters","context","GuardCtor","guard","canActivate","ex","ForbiddenException","statusCode","toJSON","n","v","toLowerCase","undefined","JSON","stringify","verb","forEach","i","pattern","regexStr","replace","_m","RegExp","maxIndex","Math","max","map","p","index","Array","from","source","key","get","entries"]}
1
+ {"version":3,"sources":["../src/theokit-plugin.ts"],"mappings":"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","names":["httpDecoratorsPlugin","opts","routes","initialized","initPromise","middlewareConsumer","MiddlewareConsumerImpl","container","configure","middlewareEntries","getEntries","undeclared","policy","undeclaredRoutes","warned","Set","controllers","length","buildRouteTable","controllersGlob","glob","rootDir","process","cwd","loadControllersFromGlob","console","log","name","register","app","addHook","pluginCtx","_nodeHttp","request","nodeIncomingToRequest","response","handleDecoratorRoute","writeResponseToNode","seen","unique","Ctor","has","add","push","instance","resolveOrNew","walks","walkControllerMetadata","w","regex","paramNames","compilePattern","fullPath","walk","sort","a","b","aHasParam","includes","bHasParam","mwEntries","url","URL","method","toUpperCase","match","findMatch","pathname","entry","params","mwResponse","runMiddleware","access","ex","ForbiddenException","undeclaredRouteRefusal","jsonResponse","statusCode","toJSON","warn","undeclaredRouteWarning","ctx","createExecutionContext","propertyKey","guardResponse","runGuards","guards","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","canActivate","n","v","toLowerCase","undefined","JSON","stringify","verb","forEach","i","pattern","regexStr","replace","_m","RegExp","maxIndex","Math","max","map","p","index","Array","from","source","key","get","entries"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theokit/http",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "NestJS-style decorators (@Controller, @Get, @Post, @Body, @UseGuards) over Web Standards, compiling to TheoKit route registrations.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/app.ts","../src/request-context.ts","../src/static.ts","../src/stream-renderer.ts"],"mappings":"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","names":["AsyncLocalStorage","storage","AsyncLocalStorage","getRequestContext","ctx","getStore","Error","tryGetRequestContext","runWithRequestContext","fn","run","MIME_TYPES","UNSAFE_PATH_RE","getMimeType","filePath","dot","lastIndexOf","ext","slice","toLowerCase","isSafePath","pathname","test","readFileBun","fullPath","g","globalThis","BunRT","Bun","file","exists","buf","arrayBuffer","content","Uint8Array","size","byteLength","readFileDeno","DenoRT","Deno","stat","isDirectory","readFile","readFileNode","fs","handle","open","close","containedRealPath","root","sep","realPath","realpath","realRoot","startsWith","safePath","resolveRoot","join","cwd","resolve","createStaticHandler","options","maxAge","resolvedRoot","request","method","toUpperCase","url","URL","decodeURIComponent","result","endsWith","includes","contentType","headers","String","Response","status","DOCTYPE","encoder","TextEncoder","renderToStream","options","root","waitForAll","reactDomServer","renderToReadableStream","renderWithReadableStream","renderToString","console","warn","renderWithString","Error","renderFn","reactStream","allReady","doctypeStream","prependDoctype","stream","html","bytes","encode","ReadableStream","start","controller","enqueue","close","Promise","resolve","source","reader","getReader","doctypeSent","pull","value","done","read","cancel","streamToResponse","result","Response","status","headers","TheoApp","serverHandle","routes","frontendHtml","streamingRoot","staticHandler","startTime","Date","now","healthPath","readyPath","readinessChecks","opts","hp","rp","startsWith","Error","adapter","createNodeAdapter","createServer","request","handleRequest","create","app","registry","Map","module","moduleMeta","Reflect","getMetadata","allModules","imports","Mod","meta","Prov","providers","has","set","Controller","controllers","paramTypes","args","map","pt","dep","get","name","instance","postConstruct","result","Promise","walks","walkControllerMetadata","w","push","walk","sort","a","b","aP","fullPath","includes","bP","entry","paramNames","regexStr","replace","_m","compiledPattern","RegExp","compiledParamNames","needsBody","paramEntries","some","p","source","root","streaming","renderToString","html","staticDir","createStaticHandler","agents","length","autoWireAgents","listen","port","resolve","console","log","getServerHandle","close","agentRoutes","entries","_registry","runtime","agentRuntime","undefined","HttpDecoratorsConfigError","apiKey","llmApiKey","process","env","OPENROUTER_API_KEY","compiled","createRun","agentStreamFactory","tools","model","llmModel","createSdkAgentStream","createFallbackStream","agentIdentity","agentClass","agent","generateAgentRoutes","walkResult","route","compiledOptions","path","method","pattern","handler","guards","methodName","handleReadinessCheck","jsonResponse","status","checks","results","all","check","race","setTimeout","healthy","message","err","allHealthy","every","r","agentName","msg","_message","_sessionId","events","type","runId","code","retryable","Symbol","asyncIterator","i","next","value","done","pathname","URL","url","reqCtx","params","startedAt","runWithRequestContext","handleRequestInContext","_reqCtx","uptime","timestamp","renderToStream","streamToResponse","Response","headers","staticResponse","toUpperCase","test","ctx","createExecutionContext","GuardCtor","guard","canActivate","ex","ForbiddenException","statusCode","toJSON","match","findRoute","error","propertyKey","body","text","clone","JSON","parse","bodySchema","safeParse","success","issues","data","buildArgs","Object","fromEntries","searchParams","redirect","location","handlerFn","interceptors","runInterceptors","apply","buildResponse","filters","runExceptionFilters","HttpException","verb","exec","forEach","query","max","Math","index","Array","from","key","toLowerCase","stringify","n","v"]}
@@ -1,152 +0,0 @@
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/bridge/dto-zod.ts
42
- function resolveDtoSchema(dtoClass) {
43
- if (typeof dtoClass !== "function") return void 0;
44
- const maybe = dtoClass.schema;
45
- if (maybe !== null && maybe !== void 0 && typeof maybe.safeParse === "function") {
46
- return maybe;
47
- }
48
- return void 0;
49
- }
50
- __name(resolveDtoSchema, "resolveDtoSchema");
51
-
52
- // src/bridge/walk-metadata.ts
53
- import "reflect-metadata";
54
- function joinPath(prefix, path) {
55
- return ("/" + prefix + "/" + path).replace(/\/+/g, "/").replace(/\/$/, "") || "/";
56
- }
57
- __name(joinPath, "joinPath");
58
- function resolveBodySchema(paramEntries, ControllerClass, propertyKey) {
59
- const bodyParam = paramEntries.find((p) => p.source === "body" && !p.key);
60
- if (!bodyParam) return void 0;
61
- if (bodyParam.schema) return bodyParam.schema;
62
- const paramTypes = Reflect.getMetadata("design:paramtypes", ControllerClass.prototype, propertyKey) ?? [];
63
- if (paramTypes.length > 0) {
64
- return resolveDtoSchema(paramTypes[bodyParam.index]);
65
- }
66
- 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.`);
67
- return void 0;
68
- }
69
- __name(resolveBodySchema, "resolveBodySchema");
70
- var walkCache = /* @__PURE__ */ new WeakMap();
71
- function walkControllerMetadata(ControllerClass) {
72
- const cached = walkCache.get(ControllerClass);
73
- if (cached) return cached;
74
- const controllerMeta = getMeta(CONTROLLER_PREFIX, ControllerClass);
75
- if (!controllerMeta) {
76
- throw new HttpDecoratorsConfigError(`Controller class ${ControllerClass.name} is missing @Controller() decorator. Add @Controller('prefix') to the class declaration.`);
77
- }
78
- const { prefix, host } = controllerMeta;
79
- if (host) {
80
- console.warn(`[@theokit/http] @Controller host '${host}' captured but enforcement deferred to v0.2.0`);
81
- }
82
- const methods = getMeta(ROUTE_METHODS, ControllerClass) ?? [];
83
- const paramsMap = getMeta(ROUTE_PARAMS, ControllerClass) ?? /* @__PURE__ */ new Map();
84
- const classGuards = getMeta(USE_GUARDS, ControllerClass) ?? [];
85
- const classInterceptors = getMeta(USE_INTERCEPTORS, ControllerClass) ?? [];
86
- const classFilters = getMeta(USE_FILTERS, ControllerClass) ?? [];
87
- const result = methods.map((m) => {
88
- const paramEntries = paramsMap.get(m.propertyKey) ?? [];
89
- const bodySchema = resolveBodySchema(paramEntries, ControllerClass, m.propertyKey);
90
- const methodGuards = getMeta(USE_GUARDS, ControllerClass, m.propertyKey) ?? [];
91
- const methodInterceptors = getMeta(USE_INTERCEPTORS, ControllerClass, m.propertyKey) ?? [];
92
- return {
93
- verb: m.verb,
94
- fullPath: joinPath(prefix, m.path),
95
- propertyKey: m.propertyKey,
96
- bodySchema,
97
- paramEntries: [
98
- ...paramEntries
99
- ].sort((a, b) => a.index - b.index),
100
- status: getMeta(ROUTE_STATUS, ControllerClass, m.propertyKey),
101
- headers: getMeta(ROUTE_HEADERS, ControllerClass, m.propertyKey) ?? [],
102
- redirect: getMeta(ROUTE_REDIRECT, ControllerClass, m.propertyKey),
103
- guards: [
104
- ...classGuards,
105
- ...methodGuards
106
- ],
107
- interceptors: [
108
- ...classInterceptors,
109
- ...methodInterceptors
110
- ],
111
- filters: getMeta(USE_FILTERS, ControllerClass, m.propertyKey) ?? classFilters
112
- };
113
- });
114
- const exposeEntries = getMeta(EXPOSE_AGENT, ControllerClass) ?? [];
115
- const agentResults = exposeEntries.map((e) => {
116
- const memberGuards = getMeta(USE_GUARDS, ControllerClass, e.propertyKey) ?? [];
117
- const verb = "POST";
118
- return {
119
- verb,
120
- fullPath: joinPath(prefix, String(e.propertyKey)),
121
- propertyKey: e.propertyKey,
122
- paramEntries: [],
123
- headers: [],
124
- guards: [
125
- ...classGuards,
126
- ...memberGuards
127
- ],
128
- interceptors: [],
129
- filters: classFilters,
130
- agent: {
131
- module: e.agent,
132
- opts: e.opts
133
- }
134
- };
135
- });
136
- const all = [
137
- ...result,
138
- ...agentResults
139
- ];
140
- walkCache.set(ControllerClass, all);
141
- return all;
142
- }
143
- __name(walkControllerMetadata, "walkControllerMetadata");
144
-
145
- export {
146
- HttpDecoratorsConfigError,
147
- createExecutionContext,
148
- resolveDtoSchema,
149
- joinPath,
150
- walkControllerMetadata
151
- };
152
- //# sourceMappingURL=chunk-X7Q5HPLK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bridge/errors.ts","../src/bridge/execution-context.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","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","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","guards","interceptors","filters","exposeEntries","EXPOSE_AGENT","agentResults","e","memberGuards","agent","module","opts","all","set"]}