@theokit/http 1.1.0 → 1.1.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/LICENSE CHANGED
@@ -137,8 +137,8 @@
137
137
 
138
138
  6. Trademarks. This License does not grant permission to use the trade
139
139
  names, trademarks, service marks, or product names of the Licensor,
140
- except as required for describing the origin of the Work and
141
- reproducing the content of the NOTICE file.
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
142
 
143
143
  7. Disclaimer of Warranty. Unless required by applicable law or
144
144
  agreed to in writing, Licensor provides the Work (and each
package/README.md CHANGED
@@ -1,14 +1,20 @@
1
- # @theokit/http-decorators
1
+ # `@theokit/http`
2
2
 
3
- NestJS-style decorators (`@Controller`, `@Get`, `@Post`, `@Body`, `@UseGuards`) that bridge to TheoKit's `defineRoute` + `defineMiddleware`. Opt-in for teams migrating from NestJS.
3
+ NestJS-style decorators (`@Controller`, `@Get`, `@Post`, `@Body`, `@UseGuards`) over Web Standards
4
+ `Request` and `Response`, not `node:http`. They compile down to the same route registrations
5
+ [`theokit`](https://www.npmjs.com/package/theokit) serves, so a decorator controller and a
6
+ `route()` builder are two authoring surfaces over one runtime.
7
+
8
+ > **Renamed.** This package was published as `@theokit/http-decorators` until 0.3.0. That name is
9
+ > frozen at the old surface — install `@theokit/http`.
4
10
 
5
11
  ## Install
6
12
 
7
13
  ```bash
8
- pnpm add @theokit/http-decorators reflect-metadata
14
+ pnpm add @theokit/http reflect-metadata
9
15
  ```
10
16
 
11
- Add to your `tsconfig.json`:
17
+ The decorators are the TypeScript legacy kind, so the consuming project needs:
12
18
 
13
19
  ```json
14
20
  {
@@ -19,62 +25,75 @@ Add to your `tsconfig.json`:
19
25
  }
20
26
  ```
21
27
 
28
+ `emitDecoratorMetadata` is only required for the DTO-class form of `@Body` (below). The preferred
29
+ form — `@Body(schema)` — works without it.
30
+
22
31
  ## Quick start
23
32
 
24
33
  ```typescript
25
- import { Controller, Get, Post, Body } from '@theokit/http-decorators'
34
+ import { Controller, Get, Post, Body, Param } from '@theokit/http'
26
35
  import { z } from 'zod'
27
36
 
28
- const zCreateCat = z.object({ name: z.string(), age: z.number() })
29
-
30
- class CreateCatDto {
31
- static schema = zCreateCat
32
- }
33
-
34
- @Controller('cats')
37
+ // Convention: @Controller() on CatsController infers the prefix "api/cats".
38
+ // Pass a string to override: @Controller('api/v2/cats').
39
+ @Controller()
35
40
  export class CatsController {
36
41
  @Get()
37
- findAll(): string {
38
- return 'This action returns all cats'
42
+ findAll() {
43
+ return { cats: [] }
44
+ }
45
+
46
+ @Get(':id')
47
+ findOne(@Param('id') id: string) {
48
+ return { id }
39
49
  }
40
50
 
41
51
  @Post()
42
- create(@Body() body: CreateCatDto) {
43
- return `Added ${(body as z.infer<typeof zCreateCat>).name}`
52
+ create(@Body(z.object({ name: z.string(), age: z.number().min(0) })) body: unknown) {
53
+ return { created: body }
44
54
  }
45
55
  }
46
56
  ```
47
57
 
48
- ## DTO validation (Pattern D2 Zod static schema)
58
+ ## Validation Zod is the single source of truth
49
59
 
50
- TheoKit uses Zod as the single source of truth for validation. Attach a `static schema` to your DTO class:
60
+ Pass the schema to `@Body` directly. The bridge validates the request against it and feeds the same
61
+ schema to the OpenAPI emitter and the typed-client codegen:
51
62
 
52
63
  ```typescript
53
- const zCreateCat = z.object({
54
- name: z.string().min(2).max(50),
55
- age: z.number().min(0),
56
- breed: z.string(),
57
- })
64
+ @Post()
65
+ create(@Body(z.object({ name: z.string().min(2), breed: z.string() })) body: unknown) { … }
66
+ ```
67
+
68
+ A DTO class works too, when a shared, named shape reads better. Attach the schema as a static; this
69
+ form needs `emitDecoratorMetadata`, because the bridge finds the class through `design:paramtypes`:
58
70
 
71
+ ```typescript
59
72
  class CreateCatDto {
60
- static schema = zCreateCat
73
+ static schema = z.object({ name: z.string(), age: z.number() })
61
74
  }
75
+
76
+ @Post()
77
+ create(@Body() body: CreateCatDto) { … }
62
78
  ```
63
79
 
64
- The bridge reads `CreateCatDto.schema` at metadata-walk time and feeds it to `defineRoute({ body: zCreateCat })`. This preserves TheoKit's OpenAPI generation + type inference pipeline.
80
+ When neither is present the body is passed through raw and the bridge warns validation is never
81
+ silently skipped.
82
+
83
+ ## Pipeline
65
84
 
66
- ## Guards and Interceptors
85
+ `middleware guards → interceptors → handler`, with filters catching what escapes.
67
86
 
68
87
  ```typescript
69
- import { Controller, Get, UseGuards } from '@theokit/http-decorators'
88
+ import { Controller, Get, UseGuards, type CanActivate, type ExecutionContext } from '@theokit/http'
70
89
 
71
- class AuthGuard {
72
- canActivate(request: Request): boolean {
73
- return request.headers.get('authorization') !== null
90
+ class AuthGuard implements CanActivate {
91
+ canActivate(ctx: ExecutionContext): boolean {
92
+ return ctx.getRequest().headers.get('authorization') !== null
74
93
  }
75
94
  }
76
95
 
77
- @Controller('admin')
96
+ @Controller('api/admin')
78
97
  export class AdminController {
79
98
  @UseGuards(AuthGuard)
80
99
  @Get()
@@ -84,89 +103,116 @@ export class AdminController {
84
103
  }
85
104
  ```
86
105
 
87
- Guards that return `false` produce a 401 response. `@UseInterceptors` wraps the handler for post-processing (logging, caching).
106
+ A guard returning `false` produces **403 Forbidden** (`ForbiddenException`); throw
107
+ `UnauthorizedException` from the guard when 401 is what you mean. Class-level guards run before
108
+ method-level ones.
88
109
 
89
- ## CLI scaffold
110
+ An interceptor is `intercept(request, next)` — Web Standard `Request` in, and `next()` wrapping the
111
+ handler call only (the body is already parsed by then). Not calling `next()` short-circuits the
112
+ handler; calling it twice is memoized to one execution.
90
113
 
91
- ```bash
92
- theokit generate controller cats
93
- # Creates server/controllers/cats.controller.ts
94
- ```
114
+ An exception filter is `catch(exception, host)` returning a `Response`, where `host.getRequest()` is
115
+ the request that failed.
95
116
 
96
- ## registerControllers (low-level API)
117
+ ## Serving an agent from a controller
97
118
 
98
- For advanced use cases without the Vite plugin:
119
+ `@Expose` binds an agent built in `agents/<name>.ts` to a controller property, so its route, its
120
+ streaming and its auth are visible in one place:
99
121
 
100
122
  ```typescript
101
- import { registerControllers } from '@theokit/http-decorators'
102
- import { CatsController } from './controllers/cats.controller.js'
123
+ import { Controller, Expose, UseGuards } from '@theokit/http'
103
124
 
104
- const routes = registerControllers([CatsController])
105
- // Returns RouteRegistration[] with verb, fullPath, walkResult per method
125
+ import supportAgent from '../../agents/support.js'
126
+
127
+ @Controller('api/agents')
128
+ @UseGuards(AuthGuard)
129
+ export class AgentsController {
130
+ @Expose(supportAgent)
131
+ support!: unknown // → POST /api/agents/support, behind AuthGuard
132
+ }
106
133
  ```
107
134
 
135
+ The request is delegated straight to the one agent runtime. Guards run on that route; interceptors
136
+ do not.
137
+
108
138
  ## Decorators reference
109
139
 
110
140
  | Decorator | Kind | Purpose |
111
141
  |---|---|---|
112
- | `@Controller(prefix?, opts?)` | Class | Route prefix scope |
113
- | `@Get(path?)` | Method | GET endpoint |
114
- | `@Post(path?)` | Method | POST endpoint |
115
- | `@Put(path?)` | Method | PUT endpoint |
116
- | `@Patch(path?)` | Method | PATCH endpoint |
117
- | `@Delete(path?)` | Method | DELETE endpoint |
118
- | `@Options(path?)` | Method | OPTIONS endpoint |
119
- | `@Head(path?)` | Method | HEAD endpoint |
120
- | `@All(path?)` | Method | All HTTP methods |
121
- | `@Body(key?)` | Parameter | Request body (or body[key]) |
122
- | `@Param(key?)` | Parameter | Route params (or params[key]) |
123
- | `@Query(key?)` | Parameter | Query string (or query[key]) |
142
+ | `@Controller(prefix?, opts?)` | Class | Route prefix scope (inferred from the class name when omitted) |
143
+ | `@Get/@Post/@Put/@Patch/@Delete/@Options/@Head/@All(path?)` | Method | HTTP verb endpoints |
144
+ | `@Body(schemaOrKey?)` | Parameter | Request body — Zod schema, DTO class, or `body[key]` |
145
+ | `@Param(key?)` | Parameter | Route params (or `params[key]`) |
146
+ | `@Query(key?)` | Parameter | Query string (or `query[key]`) |
124
147
  | `@Headers(name?)` | Parameter | Request headers |
125
- | `@Req()` | Parameter | Full Request object |
126
- | `@Res(opts?)` | Parameter | Response object (`passthrough` option) |
127
- | `@Session()` | Parameter | Session object |
128
- | `@Ip()` | Parameter | Client IP |
129
- | `@HostParam(key?)` | Parameter | Host parameters |
130
- | `@HttpCode(status)` | Method | Override response status code |
131
- | `@Header(name, value)` | Method | Set response header |
148
+ | `@Req()` / `@Res(opts?)` | Parameter | The raw `Request` / response (`passthrough` option) |
149
+ | `@Session()` / `@Ip()` / `@HostParam(key?)` | Parameter | Session, client IP, host params |
150
+ | `@HttpCode(status)` | Method | Override the response status |
151
+ | `@Header(name, value)` | Method | Set a response header |
132
152
  | `@Redirect(url, status?)` | Method | Redirect response |
133
- | `@UseGuards(...guards)` | Class/Method | Attach guard classes |
134
- | `@UseInterceptors(...interceptors)` | Class/Method | Attach interceptor classes |
153
+ | `@UseGuards(...)` | Class/Method | Attach guards |
154
+ | `@UseInterceptors(...)` | Class/Method | Attach interceptors |
155
+ | `@UseFilters(...)` / `@Catch(...)` | Class/Method | Exception filters |
156
+ | `@Throttle(opts)` / `@SkipThrottle()` | Class/Method | Rate-limit policy |
157
+ | `@SetMetadata(key, value)` / `createDecorator<T>()` | Class/Method | Custom metadata, read back with `Reflector` |
158
+ | `@Expose(agent, opts?)` | Property | Serve a built agent from this controller |
135
159
 
136
- ## Limitations
160
+ Build your own policy decorator with `createDecorator`:
137
161
 
138
- ### Singleton-scope controllers only (v0.1.0)
162
+ ```typescript
163
+ const Roles = createDecorator<string[]>()
164
+ // @Roles(['admin']) → read it in a guard with reflector.get(Roles, handler)
165
+ ```
139
166
 
140
- Controllers are instantiated once per `registerControllers` call. NestJS request-scoped controllers (`@Injectable({ scope: Scope.REQUEST })`) are not supported. Migration path: v0.2.0+ via `@theokit/di` integration.
167
+ `HttpStatus` ships the 30 status codes the framework uses, alongside an exception class per code
168
+ (`BadRequestException`, `ConflictException`, `TooManyRequestsException`, …).
141
169
 
142
- ### Interceptor wrap semantics simplified
170
+ ## Subpaths
143
171
 
144
- NestJS interceptors can skip calling `next()` (e.g., cache-hit short-circuit). v0.1.0 wraps always call `next()` then post-process. Consumers needing pre-handler short-circuit should use `defineMiddleware` directly.
172
+ | Subpath | What lives there |
173
+ |---|---|
174
+ | `.` | Decorators, metadata, the bridge, exceptions, `TheoApp`, `createTypedClient`, `contract`, static serving |
175
+ | `./theokit-plugin` | The plugin that wires controllers into a TheoKit app |
176
+ | `./app` | App-level composition |
177
+ | `./runtime/node` | The Node runtime adapter |
178
+ | `./action-encryption`, `./server-inserted-html`, `./css-resource` | Opt-in capabilities kept off the main bundle |
145
179
 
146
- ### Handler returning Response bypasses decorator-set status/headers
180
+ ## `registerControllers` (low-level)
147
181
 
148
- If your handler returns a `Response` object directly, `@HttpCode` and `@Header` decorators are not applied. You own the full response. This matches NestJS behavior with `@Res({ passthrough: false })`.
182
+ For advanced use without the Vite plugin:
149
183
 
150
- ## Troubleshooting
184
+ ```typescript
185
+ import { registerControllers } from '@theokit/http'
151
186
 
152
- ### `HttpDecoratorsConfigError: emitDecoratorMetadata not enabled`
187
+ const routes = registerControllers([CatsController])
188
+ // RouteRegistration[] — verb, fullPath, and the metadata walk per method
189
+ ```
153
190
 
154
- Your `tsconfig.json` is missing the `emitDecoratorMetadata: true` flag. Add both flags:
191
+ ## Limitations
155
192
 
156
- ```json
157
- {
158
- "compilerOptions": {
159
- "experimentalDecorators": true,
160
- "emitDecoratorMetadata": true
161
- }
162
- }
163
- ```
193
+ - **Singleton-scope controllers only.** A controller is instantiated once, when the handler is
194
+ built — NestJS request-scoped controllers (`@Injectable({ scope: Scope.REQUEST })`) have no
195
+ equivalent here. Guards and interceptors are the opposite: a fresh instance per request, unless a
196
+ DI container resolves them.
197
+ - **No response object before the handler returns.** `ExecutionContext` exposes the request, the URL,
198
+ the controller class and the handler name — there is nothing to mutate headers on until a
199
+ `Response` exists. Set them with `@Header`, or return a `Response` yourself.
200
+ - **A handler returning a `Response` owns it.** `@HttpCode` and `@Header` are not applied on that
201
+ path — the same behaviour as NestJS with `@Res({ passthrough: false })`.
164
202
 
165
- ### `HttpDecoratorsConfigError: missing @Controller() decorator`
203
+ ## Troubleshooting
204
+
205
+ **`HttpDecoratorsConfigError: emitDecoratorMetadata not enabled`** — add both compiler flags shown
206
+ under Install, or pass the schema inline as `@Body(schema)`, which does not need them.
166
207
 
167
- You have `@Get`/`@Post` methods on a class that lacks `@Controller()`. Add the decorator to the class.
208
+ **`HttpDecoratorsConfigError: missing @Controller() decorator`** a class has `@Get`/`@Post`
209
+ methods but no `@Controller()`.
168
210
 
169
211
  ## Bundle cost
170
212
 
171
- - Opt-in consumers: ~8-13KB gzipped (`reflect-metadata` ~3KB + this package ~5-10KB)
172
- - Non-opt-in consumers: 0KB
213
+ ~8-13KB gzipped for consumers who opt in (`reflect-metadata` ~3KB plus this package); 0KB for those
214
+ who do not.
215
+
216
+ ## Licence
217
+
218
+ Apache-2.0 — see `LICENSE`.
package/dist/app.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TheoApp
3
- } from "./chunk-7INGPMC7.js";
3
+ } from "./chunk-ZMMIH3I2.js";
4
4
  import "./chunk-X7Q5HPLK.js";
5
5
  import "./chunk-AJOJXZRY.js";
6
6
  import "./chunk-BSS3KPGY.js";
@@ -112,7 +112,7 @@ async function readFileBun(fullPath) {
112
112
  const buf = await file.arrayBuffer();
113
113
  return {
114
114
  content: new Uint8Array(buf),
115
- size: file.size
115
+ size: buf.byteLength
116
116
  };
117
117
  }
118
118
  __name(readFileBun, "readFileBun");
@@ -133,25 +133,47 @@ async function readFileDeno(fullPath) {
133
133
  }
134
134
  __name(readFileDeno, "readFileDeno");
135
135
  async function readFileNode(fullPath) {
136
+ const fs = await import("fs/promises");
137
+ let handle;
136
138
  try {
137
- const fs = await import("fs/promises");
138
- const stat = await fs.stat(fullPath);
139
- if (stat.isDirectory()) return null;
140
- const content = await fs.readFile(fullPath);
139
+ handle = await fs.open(fullPath, "r");
140
+ } catch {
141
+ return null;
142
+ }
143
+ try {
144
+ if ((await handle.stat()).isDirectory()) return null;
145
+ const content = await handle.readFile();
141
146
  return {
142
147
  content: new Uint8Array(content),
143
- size: stat.size
148
+ size: content.byteLength
144
149
  };
145
150
  } catch {
146
151
  return null;
152
+ } finally {
153
+ await handle.close();
147
154
  }
148
155
  }
149
156
  __name(readFileNode, "readFileNode");
150
- async function readFile(fullPath) {
157
+ async function containedRealPath(fullPath, root) {
158
+ const { sep } = await import("path");
159
+ const fs = await import("fs/promises");
160
+ try {
161
+ const realPath = await fs.realpath(fullPath);
162
+ const realRoot = await fs.realpath(root);
163
+ if (realPath !== realRoot && !realPath.startsWith(realRoot + sep)) return null;
164
+ return realPath;
165
+ } catch {
166
+ return null;
167
+ }
168
+ }
169
+ __name(containedRealPath, "containedRealPath");
170
+ async function readFile(fullPath, root) {
171
+ const safePath = await containedRealPath(fullPath, root);
172
+ if (safePath === null) return null;
151
173
  const g = globalThis;
152
- if (g.Bun) return readFileBun(fullPath);
153
- if (g.Deno) return readFileDeno(fullPath);
154
- return readFileNode(fullPath);
174
+ if (g.Bun) return readFileBun(safePath);
175
+ if (g.Deno) return readFileDeno(safePath);
176
+ return readFileNode(safePath);
155
177
  }
156
178
  __name(readFile, "readFile");
157
179
  async function resolveRoot(root) {
@@ -184,10 +206,10 @@ function createStaticHandler(options) {
184
206
  resolvedRoot ??= await resolveRoot(root);
185
207
  const { join } = await import("path");
186
208
  let fullPath = join(resolvedRoot, pathname);
187
- let result = await readFile(fullPath);
209
+ let result = await readFile(fullPath, resolvedRoot);
188
210
  if (!result && (pathname.endsWith("/") || !pathname.includes("."))) {
189
211
  fullPath = join(fullPath, "index.html");
190
- result = await readFile(fullPath);
212
+ result = await readFile(fullPath, resolvedRoot);
191
213
  }
192
214
  if (!result) return null;
193
215
  const contentType = getMimeType(fullPath);
@@ -777,4 +799,4 @@ export {
777
799
  streamToResponse,
778
800
  TheoApp
779
801
  };
780
- //# sourceMappingURL=chunk-7INGPMC7.js.map
802
+ //# sourceMappingURL=chunk-ZMMIH3I2.js.map
@@ -0,0 +1 @@
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","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"]}
@@ -20,6 +20,9 @@ interface CssResource {
20
20
  * - Inline CSS (content) → `<style precedence="...">content</style>`
21
21
  * - Dev mode appends `?v=<timestamp>` to external hrefs for cache busting.
22
22
  *
23
+ * `href` and `precedence` are attribute-escaped and `content` is protected against a `</style`
24
+ * breakout, so a value coming from configuration cannot inject markup.
25
+ *
23
26
  * @returns HTML string for the CSS resource, or empty string if neither
24
27
  * href nor content is provided.
25
28
  */
@@ -3,15 +3,22 @@ import {
3
3
  } from "./chunk-Z4QWC7IK.js";
4
4
 
5
5
  // src/css-resource.ts
6
+ function escapeAttribute(value) {
7
+ return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#39;");
8
+ }
9
+ __name(escapeAttribute, "escapeAttribute");
10
+ function escapeStyleText(value) {
11
+ return value.replace(/<\/(style)/gi, "\\3c /$1");
12
+ }
13
+ __name(escapeStyleText, "escapeStyleText");
6
14
  function renderCssResource(resource, isDev) {
15
+ const precedenceAttr = resource.precedence ? ` precedence="${escapeAttribute(resource.precedence)}"` : "";
7
16
  if (resource.href) {
8
- const href = isDev ? `${resource.href}?v=${Date.now()}` : resource.href;
9
- const precedenceAttr = resource.precedence ? ` precedence="${resource.precedence}"` : "";
10
- return `<link rel="stylesheet" href="${href}"${precedenceAttr}>`;
17
+ const href = isDev ? `${resource.href}?v=${String(Date.now())}` : resource.href;
18
+ return `<link rel="stylesheet" href="${escapeAttribute(href)}"${precedenceAttr}>`;
11
19
  }
12
20
  if (resource.content) {
13
- const precedenceAttr = resource.precedence ? ` precedence="${resource.precedence}"` : "";
14
- return `<style${precedenceAttr}>${resource.content}</style>`;
21
+ return `<style${precedenceAttr}>${escapeStyleText(resource.content)}</style>`;
15
22
  }
16
23
  return "";
17
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/css-resource.ts"],"mappings":";;;;;AA8BO,SAASA,kBAAkBC,UAAuBC,OAAe;AACtE,MAAID,SAASE,MAAM;AACjB,UAAMA,OAAOD,QAAQ,GAAGD,SAASE,IAAI,MAAMC,KAAKC,IAAG,CAAA,KAAOJ,SAASE;AACnE,UAAMG,iBAAiBL,SAASM,aAAa,gBAAgBN,SAASM,UAAU,MAAM;AACtF,WAAO,gCAAgCJ,IAAAA,IAAQG,cAAAA;EACjD;AAEA,MAAIL,SAASO,SAAS;AACpB,UAAMF,iBAAiBL,SAASM,aAAa,gBAAgBN,SAASM,UAAU,MAAM;AACtF,WAAO,SAASD,cAAAA,IAAkBL,SAASO,OAAO;EACpD;AAEA,SAAO;AACT;AAbgBR;","names":["renderCssResource","resource","isDev","href","Date","now","precedenceAttr","precedence","content"]}
1
+ {"version":3,"sources":["../src/css-resource.ts"],"mappings":";;;;;AA2BA,SAASA,gBAAgBC,OAAa;AACpC,SAAOA,MACJC,WAAW,KAAK,OAAA,EAChBA,WAAW,KAAK,MAAA,EAChBA,WAAW,KAAK,MAAA,EAChBA,WAAW,KAAK,QAAA,EAChBA,WAAW,KAAK,OAAA;AACrB;AAPSF;AAkBT,SAASG,gBAAgBF,OAAa;AACpC,SAAOA,MAAMG,QAAQ,gBAAgB,UAAA;AACvC;AAFSD;AAiBF,SAASE,kBAAkBC,UAAuBC,OAAe;AACtE,QAAMC,iBAAiBF,SAASG,aAC5B,gBAAgBT,gBAAgBM,SAASG,UAAU,CAAA,MACnD;AAEJ,MAAIH,SAASI,MAAM;AACjB,UAAMA,OAAOH,QAAQ,GAAGD,SAASI,IAAI,MAAMC,OAAOC,KAAKC,IAAG,CAAA,CAAA,KAAQP,SAASI;AAC3E,WAAO,gCAAgCV,gBAAgBU,IAAAA,CAAAA,IAASF,cAAAA;EAClE;AAEA,MAAIF,SAASQ,SAAS;AACpB,WAAO,SAASN,cAAAA,IAAkBL,gBAAgBG,SAASQ,OAAO,CAAA;EACpE;AAEA,SAAO;AACT;AAfgBT;","names":["escapeAttribute","value","replaceAll","escapeStyleText","replace","renderCssResource","resource","isDev","precedenceAttr","precedence","href","String","Date","now","content"]}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  renderToStream,
8
8
  streamToResponse,
9
9
  tryGetRequestContext
10
- } from "./chunk-7INGPMC7.js";
10
+ } from "./chunk-ZMMIH3I2.js";
11
11
  import {
12
12
  MiddlewareConsumerImpl,
13
13
  isControllerClass,
package/package.json CHANGED
@@ -1,39 +1,48 @@
1
1
  {
2
2
  "name": "@theokit/http",
3
- "version": "1.1.0",
4
- "description": "NestJS-style decorators (@Controller, @Get, @Post, @Body, @UseGuards) bridging to TheoKit's defineRoute + defineMiddleware",
3
+ "version": "1.1.1",
4
+ "description": "NestJS-style decorators (@Controller, @Get, @Post, @Body, @UseGuards) over Web Standards, compiling to TheoKit route registrations.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/usetheokit/theokit.git",
8
+ "directory": "packages/http"
9
+ },
10
+ "homepage": "https://github.com/usetheokit/theokit/tree/main/packages/http#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/usetheokit/theokit/issues"
13
+ },
5
14
  "type": "module",
6
15
  "sideEffects": false,
7
16
  "main": "./dist/index.js",
8
17
  "types": "./dist/index.d.ts",
9
18
  "exports": {
10
19
  ".": {
11
- "import": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
13
22
  },
14
23
  "./theokit-plugin": {
15
- "import": "./dist/theokit-plugin.js",
16
- "types": "./dist/theokit-plugin.d.ts"
24
+ "types": "./dist/theokit-plugin.d.ts",
25
+ "import": "./dist/theokit-plugin.js"
17
26
  },
18
27
  "./app": {
19
- "import": "./dist/app.js",
20
- "types": "./dist/app.d.ts"
28
+ "types": "./dist/app.d.ts",
29
+ "import": "./dist/app.js"
21
30
  },
22
31
  "./runtime/node": {
23
- "import": "./dist/runtime-node.js",
24
- "types": "./dist/runtime-node.d.ts"
32
+ "types": "./dist/runtime-node.d.ts",
33
+ "import": "./dist/runtime-node.js"
25
34
  },
26
35
  "./action-encryption": {
27
- "import": "./dist/action-encryption.js",
28
- "types": "./dist/action-encryption.d.ts"
36
+ "types": "./dist/action-encryption.d.ts",
37
+ "import": "./dist/action-encryption.js"
29
38
  },
30
39
  "./server-inserted-html": {
31
- "import": "./dist/server-inserted-html.js",
32
- "types": "./dist/server-inserted-html.d.ts"
40
+ "types": "./dist/server-inserted-html.d.ts",
41
+ "import": "./dist/server-inserted-html.js"
33
42
  },
34
43
  "./css-resource": {
35
- "import": "./dist/css-resource.js",
36
- "types": "./dist/css-resource.d.ts"
44
+ "types": "./dist/css-resource.d.ts",
45
+ "import": "./dist/css-resource.js"
37
46
  }
38
47
  },
39
48
  "files": [
@@ -67,10 +76,14 @@
67
76
  "vitest": "^4.1.9",
68
77
  "zod": "^4.4.3"
69
78
  },
70
- "license": "MIT",
79
+ "license": "Apache-2.0",
71
80
  "engines": {
72
81
  "node": ">=22.12.0"
73
82
  },
83
+ "publishConfig": {
84
+ "access": "public",
85
+ "provenance": true
86
+ },
74
87
  "scripts": {
75
88
  "build": "tsup",
76
89
  "test": "vitest run",
@@ -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","readFileDeno","DenoRT","Deno","stat","isDirectory","readFile","byteLength","readFileNode","fs","resolveRoot","root","join","cwd","resolve","createStaticHandler","options","maxAge","resolvedRoot","request","method","toUpperCase","url","URL","decodeURIComponent","startsWith","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","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"]}