@lovrozagar/honey 0.6.1 → 0.6.3

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/README.md CHANGED
@@ -1024,6 +1024,16 @@ const snapshot = app.toRouteTree()
1024
1024
 
1025
1025
  `mergeTree` from `honey` / `honey/tree` merges several trees (optional extra meta per tree).
1026
1026
 
1027
+ Gateway codegen: point `codegen.mergeTree` at a generate-only module that merges live downstream apps with `app.toRouteTree()`. Generated `routes.gen.ts` omits JSON Schema, so merging another service's generated tree documents no request or response bodies. `honey generate` copies the merged schemas onto the gateway app before it writes OpenAPI; the gateway runtime still serves its own generated tree.
1028
+
1029
+ ```ts
1030
+ // gateway/src/route-tree.ts — codegen only, never imported at runtime
1031
+ import { mergeTree } from "@lovrozagar/honey"
1032
+ import { app as usersApp } from "@acme/users/app"
1033
+
1034
+ export const tree = mergeTree([usersApp.toRouteTree(), { worker: "users" }])
1035
+ ```
1036
+
1027
1037
  `app.fetch(request, env, executionCtx?)` is always valid. Sync handlers return a `Response` directly; async handlers and middleware return a `Promise<Response>`. Callers should `await app.fetch(...)`.
1028
1038
 
1029
1039
  ## Serve
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,12 @@ export declare class HoneyRes {
41
41
  html<SK extends StatusKey>(statusKey: SK, body: string, opts?: ResponseOptions): TypedResponse<"text/html", SK>;
42
42
  json<SK extends StatusKey>(statusKey: SK, data: unknown, opts?: ResponseOptions): TypedResponse<"application/json", SK>;
43
43
  noContent(opts?: ResponseOptions): TypedResponse<"none", "no_content">;
44
+ /**
45
+ * Return a native Response. `fetch()`, `Fetcher.fetch`, `cache.match`, and `Response.redirect`
46
+ * return guarded headers that throw on `set`, which breaks response middleware (`requestId`,
47
+ * `secureHeaders`, `poweredBy`, `serverTiming`). Copy status and headers into a new Response; the
48
+ * body streams through unread. WebSocket upgrades and responses Honey built pass through as-is.
49
+ */
44
50
  raw(response: Response): TypedResponse;
45
51
  redirect(url: string, opts?: ResponseOptions): TypedResponse<"none", "found">;
46
52
  sse(callback: (stream: SSEStream) => Promise<void>, opts?: SSEOptions): TypedResponse<"text/event-stream", "ok">;
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"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"}
package/dist/tree.d.ts CHANGED
@@ -83,6 +83,12 @@ export declare function matchWsRoute(root: TreeNode, path: string): {
83
83
  handler: WSRouteHandler;
84
84
  params: Record<string, string>;
85
85
  } | null;
86
+ /**
87
+ * Copy input/output schemas from `source` onto matching routes in `target` that lack them.
88
+ * Generate-time only: a gateway app serves an intern tree (no schemas) while its merge source
89
+ * (`mergeTree` over downstream `app.toRouteTree()`) still carries them for OpenAPI.
90
+ */
91
+ export declare function overlaySchemas(target: TreeNode, source: TreeNode): void;
86
92
  /** Merge source tree nodes into target tree (mutates target) */
87
93
  export declare function mergeInto(target: TreeNode, source: TreeNode): void;
88
94
  type TreeInput = RouteTree | [RouteTree, Record<string, unknown>];
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjF,MAAM,MAAM,YAAY,GAAG;IAC1B,qEAAqE;IACrE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzD,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4GAA4G;IAC5G,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IACzD,wEAAwE;IACxE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,uBAAuB;IACvB,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,mFAAmF;IACnF,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAC3B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAClC,kFAAkF;IAClF,EAAE,EAAE,KAAK,CACR,CACC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,KAC5D,OAAO,CAAC,QAAQ,CAAC,CACtB,CAAA;IACD,yFAAyF;IACzF,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAC3B,yEAAyE;IACzE,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAC3B,0EAA0E;IAC1E,EAAE,CAAC,EAAE,MAAM,CAAA;CACX,CAAA;AAED,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACtB,EAAE,EAAE,eAAe,GAAG,IAAI,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAClC,EAAE,EAAE,KAAK,CACR,CACC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,KAC5D,OAAO,CAAC,QAAQ,CAAC,CACtB,CAAA;IACD,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAA;CACV,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACtB,gEAAgE;IAChE,CAAC,EAAE;QAAE,CAAC,EAAE,QAAQ,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACpC,qFAAqF;IACrF,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,mEAAmE;IACnE,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,EAAE,YAAY,CAAC,GAAG,IAAI,CAAA;IAClD,mEAAmE;IACnE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3B,qEAAqE;IACrE,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,EAAE,YAAY,CAAC,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACpE,sCAAsC;IACtC,EAAE,EAAE,cAAc,GAAG,IAAI,CAAA;CACzB,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAIrD;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACxE,IAAI,CAAA;AAEP,MAAM,WAAW,SAAS;CAAG;AAE7B,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/B,IAAI,EAAE,QAAQ,CAAA;CACd,CAAA;AAWD,wBAAgB,UAAU,IAAI,QAAQ,CAQrC;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAmEjH;AAqBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAsDxF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAoCzF;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,IAAI,CAqCpE;AA2FD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAQvE;AAED,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAGlE;AAED,KAAK,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAmBjE,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAc1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrozagar/honey",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "Type-safe API framework built on Web Standards. Builder-pattern DX, precompiled radix tree in production.",
5
5
  "keywords": [
6
6
  "api",
package/src/plugin.ts CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  import type { OpenApiRouteInfo, OpenApiSanitizeOptions, OpenApiSpecInput } from "./codegen.ts"
15
15
  import type { Honey } from "./index.ts"
16
16
  import type { InvalidateCheckConfig } from "./invalidate-check.ts"
17
+ import { overlaySchemas } from "./tree.ts"
17
18
  import type { ExtractedChainTypes } from "./type-extractor.ts"
18
19
  import { toYaml, yamlSiblingPath } from "./yaml.ts"
19
20
 
@@ -393,6 +394,7 @@ export async function generateAndWrite(config: ResolvedHoneyConfig, root: string
393
394
  const cg = config.codegen
394
395
 
395
396
  /* phase 1: route tree — from mergeTree source or app */
397
+ let mergeSource: TreeResult | undefined
396
398
  if (cg.tree && (cg.mergeTree || config.app)) {
397
399
  const treeSrc = resolve(root, cg.mergeTree ?? config.app ?? "")
398
400
  const exported = await loadDefaultWithJiti(treeSrc)
@@ -402,11 +404,15 @@ export async function generateAndWrite(config: ResolvedHoneyConfig, root: string
402
404
  treeCode = generateRouteTreeFromApp(exported)
403
405
  } else if (isRouteTree(exported)) {
404
406
  treeCode = generateRouteTreeFromRouteTree(exported)
407
+ mergeSource = exported
405
408
  } else {
406
409
  throw new Error(`Expected Honey app or RouteTree default export in ${treeSrc}`)
407
410
  }
408
411
 
409
412
  writeGenFile(resolve(root, cg.tree), treeCode, "honey")
413
+ } else if (cg.mergeTree && cg.openApi) {
414
+ const exported = await loadDefaultWithJiti(resolve(root, cg.mergeTree))
415
+ if (isRouteTree(exported)) mergeSource = exported
410
416
  }
411
417
 
412
418
  /* phase 2: types, manifest, openapi, sdk, cli — app needed unless sdk has specs */
@@ -425,6 +431,8 @@ export async function generateAndWrite(config: ResolvedHoneyConfig, root: string
425
431
  throw new Error(`Expected Honey app default export in ${appPath}`)
426
432
  }
427
433
  app = appExported
434
+ /* the app serves the intern tree (no schemas); document merged routes from their source */
435
+ if (mergeSource) overlaySchemas(app.toRouteTree().root, mergeSource.root)
428
436
  }
429
437
 
430
438
  /* manifest */
package/src/response.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { CookieOptions } from "./cookie.ts"
2
2
  import { serializeCookie } from "./cookie.ts"
3
3
  import type { HoneyError } from "./error.ts"
4
- import { createHoneyResponse } from "./honey-response.ts"
4
+ import { createHoneyResponse, isHoneyResponse } from "./honey-response.ts"
5
5
  import type { StatusKey } from "./types.ts"
6
6
  import { statusKeyToCode } from "./types.ts"
7
7
 
@@ -158,8 +158,15 @@ export class HoneyRes {
158
158
  return typed(new Response(null, { headers, status: 204 }))
159
159
  }
160
160
 
161
+ /**
162
+ * Return a native Response. `fetch()`, `Fetcher.fetch`, `cache.match`, and `Response.redirect`
163
+ * return guarded headers that throw on `set`, which breaks response middleware (`requestId`,
164
+ * `secureHeaders`, `poweredBy`, `serverTiming`). Copy status and headers into a new Response; the
165
+ * body streams through unread. WebSocket upgrades and responses Honey built pass through as-is.
166
+ */
161
167
  raw(response: Response): TypedResponse {
162
- return typed(response)
168
+ if (response.status === 101 || isHoneyResponse(response) || RAW_BODY in response) return typed(response)
169
+ return typed(new Response(response.body, response))
163
170
  }
164
171
 
165
172
  redirect(url: string, opts?: ResponseOptions): TypedResponse<"none", "found"> {
package/src/tree.ts CHANGED
@@ -407,6 +407,39 @@ function mergeNodes(target: TreeNode, source: TreeNode, path: string): void {
407
407
  }
408
408
  }
409
409
 
410
+ function withSchemas(
411
+ target: Record<HttpMethod | "ALL", RouteHandler>,
412
+ source: Record<HttpMethod | "ALL", RouteHandler>,
413
+ ): Record<HttpMethod | "ALL", RouteHandler> {
414
+ let next = target
415
+ for (const [method, handler] of Object.entries(target) as Array<[HttpMethod | "ALL", RouteHandler]>) {
416
+ const from = source[method]
417
+ if (from === undefined) continue
418
+ const iv = handler.iv ?? from.iv
419
+ const os = handler.os ?? from.os
420
+ if (iv === handler.iv && os === handler.os) continue
421
+ /* intern trees share handler objects across routes — copy instead of mutating */
422
+ if (next === target) next = { ...target }
423
+ next[method] = { ...handler, iv, os }
424
+ }
425
+ return next
426
+ }
427
+
428
+ /**
429
+ * Copy input/output schemas from `source` onto matching routes in `target` that lack them.
430
+ * Generate-time only: a gateway app serves an intern tree (no schemas) while its merge source
431
+ * (`mergeTree` over downstream `app.toRouteTree()`) still carries them for OpenAPI.
432
+ */
433
+ export function overlaySchemas(target: TreeNode, source: TreeNode): void {
434
+ if (target.m !== null && source.m !== null) target.m = withSchemas(target.m, source.m)
435
+ if (target.w !== null && source.w !== null) target.w = { ...target.w, m: withSchemas(target.w.m, source.w.m) }
436
+ for (const [seg, child] of Object.entries(target.s)) {
437
+ const from = source.s[seg]
438
+ if (from !== undefined) overlaySchemas(child, from)
439
+ }
440
+ if (target.d !== null && source.d !== null) overlaySchemas(target.d.c, source.d.c)
441
+ }
442
+
410
443
  /** Merge source tree nodes into target tree (mutates target) */
411
444
  export function mergeInto(target: TreeNode, source: TreeNode): void {
412
445
  bumpGeneration(target)