@lovrozagar/honey 0.1.0 → 0.2.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.
Files changed (263) hide show
  1. package/README.md +1596 -6
  2. package/dist/accepts.d.ts +6 -0
  3. package/dist/accepts.d.ts.map +1 -0
  4. package/dist/body-limit.d.ts +22 -0
  5. package/dist/body-limit.d.ts.map +1 -0
  6. package/dist/build/index.d.ts +42 -0
  7. package/dist/build/index.d.ts.map +1 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/client/error.d.ts +14 -0
  11. package/dist/client/error.d.ts.map +1 -0
  12. package/dist/client/http.d.ts +88 -0
  13. package/dist/client/http.d.ts.map +1 -0
  14. package/dist/client/index.d.ts +22 -0
  15. package/dist/client/index.d.ts.map +1 -0
  16. package/dist/client/sdk.d.ts +34 -0
  17. package/dist/client/sdk.d.ts.map +1 -0
  18. package/dist/client/sse.d.ts +10 -0
  19. package/dist/client/sse.d.ts.map +1 -0
  20. package/dist/client/types.d.ts +124 -0
  21. package/dist/client/types.d.ts.map +1 -0
  22. package/dist/client/ws.d.ts +15 -0
  23. package/dist/client/ws.d.ts.map +1 -0
  24. package/dist/client-mcp/server.d.ts +10 -0
  25. package/dist/client-mcp/server.d.ts.map +1 -0
  26. package/dist/client-mcp/types.d.ts +16 -0
  27. package/dist/client-mcp/types.d.ts.map +1 -0
  28. package/dist/cloudflare/realtime.d.ts +30 -0
  29. package/dist/cloudflare/realtime.d.ts.map +1 -0
  30. package/dist/codegen-go-cli.d.ts +22 -0
  31. package/dist/codegen-go-cli.d.ts.map +1 -0
  32. package/dist/codegen-go.d.ts +29 -0
  33. package/dist/codegen-go.d.ts.map +1 -0
  34. package/dist/codegen-hash.d.ts +3 -0
  35. package/dist/codegen-hash.d.ts.map +1 -0
  36. package/dist/codegen-ir.d.ts +123 -0
  37. package/dist/codegen-ir.d.ts.map +1 -0
  38. package/dist/codegen-loaders.d.ts +12 -0
  39. package/dist/codegen-loaders.d.ts.map +1 -0
  40. package/dist/codegen-mcp.d.ts +13 -0
  41. package/dist/codegen-mcp.d.ts.map +1 -0
  42. package/dist/codegen-python.d.ts +21 -0
  43. package/dist/codegen-python.d.ts.map +1 -0
  44. package/dist/codegen-rust.d.ts +18 -0
  45. package/dist/codegen-rust.d.ts.map +1 -0
  46. package/dist/codegen-sanitize.d.ts +3 -0
  47. package/dist/codegen-sanitize.d.ts.map +1 -0
  48. package/dist/codegen-schema-naming.d.ts +22 -0
  49. package/dist/codegen-schema-naming.d.ts.map +1 -0
  50. package/dist/codegen.d.ts +178 -0
  51. package/dist/codegen.d.ts.map +1 -0
  52. package/dist/context.d.ts +56 -0
  53. package/dist/context.d.ts.map +1 -0
  54. package/dist/cookie-sign.d.ts +3 -0
  55. package/dist/cookie-sign.d.ts.map +1 -0
  56. package/dist/cookie.d.ts +12 -0
  57. package/dist/cookie.d.ts.map +1 -0
  58. package/dist/cors.d.ts +13 -0
  59. package/dist/cors.d.ts.map +1 -0
  60. package/dist/crypto.d.ts +2 -0
  61. package/dist/crypto.d.ts.map +1 -0
  62. package/dist/csrf.d.ts +9 -0
  63. package/dist/csrf.d.ts.map +1 -0
  64. package/dist/curl-logger.d.ts +33 -0
  65. package/dist/curl-logger.d.ts.map +1 -0
  66. package/dist/detect-runtime.d.ts +16 -0
  67. package/dist/detect-runtime.d.ts.map +1 -0
  68. package/dist/error.d.ts +21 -0
  69. package/dist/error.d.ts.map +1 -0
  70. package/dist/errors.d.ts +40 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/etag.d.ts +9 -0
  73. package/dist/etag.d.ts.map +1 -0
  74. package/dist/feature-load.d.ts +3 -0
  75. package/dist/feature-load.d.ts.map +1 -0
  76. package/dist/go-type-emitter.d.ts +33 -0
  77. package/dist/go-type-emitter.d.ts.map +1 -0
  78. package/dist/honey-response.d.ts +82 -0
  79. package/dist/honey-response.d.ts.map +1 -0
  80. package/dist/i18n-slot.d.ts +7 -0
  81. package/dist/i18n-slot.d.ts.map +1 -0
  82. package/dist/i18n.d.ts +26 -0
  83. package/dist/i18n.d.ts.map +1 -0
  84. package/dist/index.d.ts +470 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/init.d.ts +7 -0
  87. package/dist/init.d.ts.map +1 -0
  88. package/dist/input.d.ts +6 -0
  89. package/dist/input.d.ts.map +1 -0
  90. package/dist/ip-restrict.d.ts +12 -0
  91. package/dist/ip-restrict.d.ts.map +1 -0
  92. package/dist/logger.d.ts +45 -0
  93. package/dist/logger.d.ts.map +1 -0
  94. package/dist/meta-spec.d.ts +81 -0
  95. package/dist/meta-spec.d.ts.map +1 -0
  96. package/dist/middleware.d.ts +60 -0
  97. package/dist/middleware.d.ts.map +1 -0
  98. package/dist/node-request.d.ts +59 -0
  99. package/dist/node-request.d.ts.map +1 -0
  100. package/dist/node.d.ts +13 -0
  101. package/dist/node.d.ts.map +1 -0
  102. package/dist/openapi/register.d.ts +3 -0
  103. package/dist/openapi/register.d.ts.map +1 -0
  104. package/dist/openapi/scalar.d.ts +12 -0
  105. package/dist/openapi/scalar.d.ts.map +1 -0
  106. package/dist/openapi/spec-factory.d.ts +31 -0
  107. package/dist/openapi/spec-factory.d.ts.map +1 -0
  108. package/dist/openapi/spec.d.ts +19 -0
  109. package/dist/openapi/spec.d.ts.map +1 -0
  110. package/dist/openapi/swagger.d.ts +12 -0
  111. package/dist/openapi/swagger.d.ts.map +1 -0
  112. package/dist/plugin.d.ts +167 -0
  113. package/dist/plugin.d.ts.map +1 -0
  114. package/dist/powered-by.d.ts +7 -0
  115. package/dist/powered-by.d.ts.map +1 -0
  116. package/dist/pretty-json.d.ts +10 -0
  117. package/dist/pretty-json.d.ts.map +1 -0
  118. package/dist/proxy.d.ts +51 -0
  119. package/dist/proxy.d.ts.map +1 -0
  120. package/dist/python-type-emitter.d.ts +11 -0
  121. package/dist/python-type-emitter.d.ts.map +1 -0
  122. package/dist/realtime/buffer.d.ts +18 -0
  123. package/dist/realtime/buffer.d.ts.map +1 -0
  124. package/dist/realtime/bus.d.ts +11 -0
  125. package/dist/realtime/bus.d.ts.map +1 -0
  126. package/dist/realtime/longpoll.d.ts +23 -0
  127. package/dist/realtime/longpoll.d.ts.map +1 -0
  128. package/dist/realtime/protocol.d.ts +50 -0
  129. package/dist/realtime/protocol.d.ts.map +1 -0
  130. package/dist/realtime/route.d.ts +42 -0
  131. package/dist/realtime/route.d.ts.map +1 -0
  132. package/dist/realtime/runtime.d.ts +74 -0
  133. package/dist/realtime/runtime.d.ts.map +1 -0
  134. package/dist/request-id.d.ts +12 -0
  135. package/dist/request-id.d.ts.map +1 -0
  136. package/dist/request-to-curl.d.ts +9 -0
  137. package/dist/request-to-curl.d.ts.map +1 -0
  138. package/dist/response.d.ts +57 -0
  139. package/dist/response.d.ts.map +1 -0
  140. package/dist/rust-type-emitter.d.ts +32 -0
  141. package/dist/rust-type-emitter.d.ts.map +1 -0
  142. package/dist/secure-headers.d.ts +16 -0
  143. package/dist/secure-headers.d.ts.map +1 -0
  144. package/dist/serve-register.d.ts +2 -0
  145. package/dist/serve-register.d.ts.map +1 -0
  146. package/dist/serve-slot.d.ts +6 -0
  147. package/dist/serve-slot.d.ts.map +1 -0
  148. package/dist/serve.d.ts +21 -0
  149. package/dist/serve.d.ts.map +1 -0
  150. package/dist/server-timing.d.ts +9 -0
  151. package/dist/server-timing.d.ts.map +1 -0
  152. package/dist/static.d.ts +12 -0
  153. package/dist/static.d.ts.map +1 -0
  154. package/dist/telemetry/otel.d.ts +59 -0
  155. package/dist/telemetry/otel.d.ts.map +1 -0
  156. package/dist/testing.d.ts +24 -0
  157. package/dist/testing.d.ts.map +1 -0
  158. package/dist/timeout.d.ts +7 -0
  159. package/dist/timeout.d.ts.map +1 -0
  160. package/dist/tree.d.ts +90 -0
  161. package/dist/tree.d.ts.map +1 -0
  162. package/dist/ts-type-emitter.d.ts +4 -0
  163. package/dist/ts-type-emitter.d.ts.map +1 -0
  164. package/dist/type-emitter.d.ts +8 -0
  165. package/dist/type-emitter.d.ts.map +1 -0
  166. package/dist/type-extractor.d.ts +39 -0
  167. package/dist/type-extractor.d.ts.map +1 -0
  168. package/dist/types.d.ts +451 -0
  169. package/dist/types.d.ts.map +1 -0
  170. package/dist/validation.d.ts +18 -0
  171. package/dist/validation.d.ts.map +1 -0
  172. package/dist/ws/bun.d.ts +28 -0
  173. package/dist/ws/bun.d.ts.map +1 -0
  174. package/dist/ws/cloudflare.d.ts +55 -0
  175. package/dist/ws/cloudflare.d.ts.map +1 -0
  176. package/dist/ws/deno.d.ts +13 -0
  177. package/dist/ws/deno.d.ts.map +1 -0
  178. package/dist/ws/node.d.ts +10 -0
  179. package/dist/ws/node.d.ts.map +1 -0
  180. package/dist/yaml.d.ts +4 -0
  181. package/dist/yaml.d.ts.map +1 -0
  182. package/docs/api-ref/go.md +82 -82
  183. package/docs/api-ref/python.md +82 -82
  184. package/docs/api-ref/rust.md +82 -82
  185. package/docs/api-ref/typescript.md +82 -82
  186. package/docs/invalidate-spec.md +13 -13
  187. package/docs/meta-spec.md +513 -0
  188. package/docs/packaging.md +85 -0
  189. package/docs/sdk.md +87 -73
  190. package/package.json +195 -51
  191. package/src/body-limit.ts +2 -1
  192. package/src/build/index.ts +2 -9
  193. package/src/cli.ts +2 -3
  194. package/src/client/http.ts +204 -223
  195. package/src/client/index.ts +6 -14
  196. package/src/client/sdk.ts +24 -17
  197. package/src/client/types.ts +4 -9
  198. package/src/client/ws.ts +3 -5
  199. package/src/client-mcp/server.ts +1 -4
  200. package/src/cloudflare/realtime.ts +8 -10
  201. package/src/codegen-go-cli.ts +74 -67
  202. package/src/codegen-go.ts +71 -51
  203. package/src/codegen-ir.ts +16 -27
  204. package/src/codegen-loaders.ts +5 -8
  205. package/src/codegen-mcp.ts +9 -27
  206. package/src/codegen-python.ts +47 -27
  207. package/src/codegen-rust.ts +110 -66
  208. package/src/codegen-sanitize.ts +1 -7
  209. package/src/codegen-schema-naming.ts +8 -2
  210. package/src/codegen.ts +299 -196
  211. package/src/context.ts +91 -95
  212. package/src/cookie-sign.ts +5 -13
  213. package/src/cookie.ts +1 -2
  214. package/src/cors.ts +4 -6
  215. package/src/crypto.ts +1 -4
  216. package/src/csrf.ts +3 -3
  217. package/src/curl-logger.ts +14 -32
  218. package/src/detect-runtime.ts +1 -3
  219. package/src/errors.ts +1 -3
  220. package/src/etag.ts +3 -4
  221. package/src/go-type-emitter.ts +45 -40
  222. package/src/honey-response.ts +1 -3
  223. package/src/i18n.ts +3 -12
  224. package/src/index.ts +1168 -1412
  225. package/src/ip-restrict.ts +2 -1
  226. package/src/logger.ts +13 -13
  227. package/src/meta-spec.ts +0 -0
  228. package/src/middleware.ts +111 -79
  229. package/src/node-request.ts +2 -1
  230. package/src/node.ts +9 -10
  231. package/src/openapi/register.ts +1 -2
  232. package/src/openapi/scalar.ts +9 -9
  233. package/src/openapi/spec-factory.ts +2 -2
  234. package/src/openapi/spec.ts +26 -19
  235. package/src/openapi/swagger.ts +9 -9
  236. package/src/plugin.ts +226 -256
  237. package/src/powered-by.ts +2 -1
  238. package/src/pretty-json.ts +2 -1
  239. package/src/proxy.ts +1 -3
  240. package/src/python-type-emitter.ts +37 -12
  241. package/src/realtime/route.ts +1 -1
  242. package/src/realtime/runtime.ts +9 -12
  243. package/src/request-id.ts +3 -4
  244. package/src/request-to-curl.ts +1 -4
  245. package/src/response.ts +150 -199
  246. package/src/rust-type-emitter.ts +66 -25
  247. package/src/secure-headers.ts +2 -1
  248. package/src/serve.ts +3 -12
  249. package/src/server-timing.ts +2 -1
  250. package/src/static.ts +3 -4
  251. package/src/telemetry/otel.ts +1 -6
  252. package/src/testing.ts +2 -11
  253. package/src/timeout.ts +2 -1
  254. package/src/tree.ts +12 -27
  255. package/src/ts-type-emitter.ts +71 -15
  256. package/src/type-emitter.ts +226 -237
  257. package/src/type-extractor.ts +260 -334
  258. package/src/types.ts +168 -68
  259. package/src/validation.ts +7 -30
  260. package/src/ws/bun.ts +2 -9
  261. package/src/ws/cloudflare.ts +13 -16
  262. package/src/ws/deno.ts +31 -40
  263. package/src/ws/node.ts +4 -19
@@ -0,0 +1,123 @@
1
+ import { type OpenApiSpecInput } from "./codegen.ts";
2
+ export type IRScalarType = "string" | "number" | "integer" | "boolean" | "null";
3
+ export type IRSchema = {
4
+ kind: "scalar";
5
+ type: IRScalarType;
6
+ format?: string;
7
+ enum?: (string | number | boolean)[];
8
+ } | {
9
+ kind: "const";
10
+ value: string | number | boolean;
11
+ } | {
12
+ kind: "object";
13
+ fields: IRField[];
14
+ additional?: IRSchema | false;
15
+ } | {
16
+ kind: "array";
17
+ items: IRSchema;
18
+ } | {
19
+ kind: "tuple";
20
+ items: IRSchema[];
21
+ } | {
22
+ kind: "union";
23
+ variants: IRSchema[];
24
+ discriminator?: IRDiscriminator;
25
+ } | {
26
+ kind: "allOf";
27
+ parts: IRSchema[];
28
+ } | {
29
+ kind: "ref";
30
+ name: string;
31
+ } | {
32
+ kind: "nullable";
33
+ inner: IRSchema;
34
+ } | {
35
+ kind: "binary";
36
+ } | {
37
+ kind: "unknown";
38
+ };
39
+ export type IRField = {
40
+ name: string;
41
+ schema: IRSchema;
42
+ required: boolean;
43
+ description?: string;
44
+ };
45
+ export type IRDiscriminator = {
46
+ propertyName: string;
47
+ mapping?: Record<string, string>;
48
+ };
49
+ export type IRParam = {
50
+ name: string;
51
+ schema: IRSchema;
52
+ description?: string;
53
+ };
54
+ export type IRMultipartPart = {
55
+ name: string;
56
+ /** "file" for schemas with kind === "binary" (or array-of-binary), otherwise "text". */
57
+ type: "file" | "text";
58
+ schema?: IRSchema;
59
+ };
60
+ export type IRBody = {
61
+ kind: "raw";
62
+ contentType: string;
63
+ schema: IRSchema;
64
+ required: boolean;
65
+ } | {
66
+ kind: "stream";
67
+ contentType: "application/octet-stream";
68
+ required: boolean;
69
+ } | {
70
+ kind: "multipart";
71
+ contentType: "multipart/form-data";
72
+ parts: IRMultipartPart[];
73
+ required: boolean;
74
+ };
75
+ export type IRResponse = {
76
+ status: string;
77
+ contentType?: string;
78
+ schema?: IRSchema;
79
+ };
80
+ export type IROperationExtensions = {
81
+ websocket?: true;
82
+ realtime?: true;
83
+ sse?: true;
84
+ deprecated?: true;
85
+ idempotencyKey?: true;
86
+ mcp?: true;
87
+ invalidates?: string[];
88
+ };
89
+ export type IROperation = {
90
+ id: string;
91
+ method: string;
92
+ path: string;
93
+ description?: string;
94
+ params: {
95
+ path: IRParam[];
96
+ query: IRParam[];
97
+ header: IRParam[];
98
+ };
99
+ body?: IRBody;
100
+ responses: Record<string, IRResponse>;
101
+ extensions: IROperationExtensions;
102
+ };
103
+ export type IRTreeEntry = {
104
+ kind: "method";
105
+ op: IROperation;
106
+ } | {
107
+ kind: "namespace";
108
+ ns: IRNamespace;
109
+ };
110
+ export type IRNamespace = {
111
+ entries: Map<string, IRTreeEntry>;
112
+ };
113
+ export type IR = {
114
+ operations: IROperation[];
115
+ schemas: Record<string, IRSchema>;
116
+ tree: IRNamespace;
117
+ };
118
+ export declare function methodsOf(ns: IRNamespace): Array<[string, IROperation]>;
119
+ export declare function namespacesOf(ns: IRNamespace): Array<[string, IRNamespace]>;
120
+ export declare function buildResourceTree(operations: IROperation[]): IRNamespace;
121
+ export declare function schemaToIR(schema: Record<string, unknown> | undefined): IRSchema;
122
+ export declare function toIR(spec: OpenApiSpecInput): IR;
123
+ //# sourceMappingURL=codegen-ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-ir.d.ts","sourceRoot":"","sources":["../src/codegen-ir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Dynamic Zod/Effect JSON Schema loaders. Not a package export — tests may import this file. */
2
+ export declare let toJSONSchemaFn: ((schema: unknown, opts?: {
3
+ io?: "input" | "output";
4
+ }) => unknown) | undefined;
5
+ export declare function loadToJSONSchema(): Promise<((schema: unknown, opts?: {
6
+ io?: "input" | "output";
7
+ }) => unknown) | undefined>;
8
+ export declare let effectJsonSchemaFn: ((schema: unknown) => unknown) | undefined;
9
+ export declare function loadEffectJsonSchema(): Promise<((schema: unknown) => unknown) | undefined>;
10
+ export declare function prepareCodegen(): Promise<void>;
11
+ export declare function resetCodegenJsonSchemaLoadersForTests(): void;
12
+ //# sourceMappingURL=codegen-loaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-loaders.d.ts","sourceRoot":"","sources":["../src/codegen-loaders.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG,eAAO,IAAI,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;AAGzG,wBAAsB,gBAAgB,IAAI,OAAO,CAChD,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAC9E,CAcA;AAED,eAAO,IAAI,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;AAGzE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,CAYhG;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD;AAED,wBAAgB,qCAAqC,IAAI,IAAI,CAK5D"}
@@ -0,0 +1,13 @@
1
+ import type { OpenApiSpecInput } from "./codegen.ts";
2
+ type MCPOptions = {
3
+ projectName: string;
4
+ sdkPackageName: string;
5
+ sdkClassName: string;
6
+ version?: string;
7
+ };
8
+ type MCPResult = {
9
+ files: Record<string, string>;
10
+ };
11
+ export declare function generateMCPServer(spec: OpenApiSpecInput, options: MCPOptions): MCPResult;
12
+ export {};
13
+ //# sourceMappingURL=codegen-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-mcp.d.ts","sourceRoot":"","sources":["../src/codegen-mcp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,KAAK,UAAU,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,SAAS,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B,CAAA;AA6SD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CA2BxF"}
@@ -0,0 +1,21 @@
1
+ /** Python SDK code generator. Mirrors TS SDK emitter in codegen.ts. */
2
+ interface PySDKOptions {
3
+ name?: string;
4
+ throwOnError?: boolean;
5
+ staleTime?: number;
6
+ staleMaxEntries?: number;
7
+ }
8
+ interface ServiceMapEntry {
9
+ method: string;
10
+ path: string;
11
+ operationId: string;
12
+ invalidate?: string[];
13
+ }
14
+ interface PySDKResult {
15
+ files: Record<string, string>;
16
+ serviceMap: Record<string, ServiceMapEntry>;
17
+ }
18
+ export declare function loadPythonRuntimeTemplates(): Map<string, string>;
19
+ export declare function generatePythonSDK(spec: Record<string, unknown>, options?: PySDKOptions): PySDKResult;
20
+ export {};
21
+ //# sourceMappingURL=codegen-python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-python.d.ts","sourceRoot":"","sources":["../src/codegen-python.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAQvE,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,eAAe;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,UAAU,WAAW;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC3C;AA4DD,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AA26BD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAexG"}
@@ -0,0 +1,18 @@
1
+ export type RustSDKOptions = {
2
+ crateName?: string;
3
+ throwOnError?: boolean;
4
+ version?: string;
5
+ description?: string;
6
+ homepage?: string;
7
+ repository?: string;
8
+ license?: string;
9
+ };
10
+ export type GeneratedRustSDK = {
11
+ files: Record<string, string>;
12
+ serviceMap: Record<string, Record<string, unknown>>;
13
+ };
14
+ export declare function loadRustRuntimeTemplates(): Map<string, string>;
15
+ /** Validates and normalises a crate name. Throws if invalid per cargo rules. */
16
+ export declare function validateCrateName(name: string): string;
17
+ export declare function generateRustSDK(spec: Record<string, unknown>, options?: RustSDKOptions): GeneratedRustSDK;
18
+ //# sourceMappingURL=codegen-rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-rust.d.ts","sourceRoot":"","sources":["../src/codegen-rust.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACnD,CAAA;AAaD,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2B9D;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKtD;AAqiDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,CA2C7G"}
@@ -0,0 +1,3 @@
1
+ /** OpenAPI cleanup of Zod JSON Schema. Not a package export. */
2
+ export declare function sanitizeZodJsonSchema(obj: Record<string, unknown>): Record<string, unknown>;
3
+ //# sourceMappingURL=codegen-sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-sanitize.d.ts","sourceRoot":"","sources":["../src/codegen-sanitize.ts"],"names":[],"mappings":"AAAA,gEAAgE;AA6BhE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+B3F"}
@@ -0,0 +1,22 @@
1
+ export type SchemaRole = "request" | "response";
2
+ export type SchemaNameContext = {
3
+ method: string;
4
+ path: string;
5
+ role: "request";
6
+ fieldPath?: string[];
7
+ } | {
8
+ method: string;
9
+ path: string;
10
+ role: "response";
11
+ status: number;
12
+ fieldPath?: string[];
13
+ };
14
+ /** Returns 6-char lowercase hex derived from content hash. */
15
+ export declare function shortHash(canonical: string): string;
16
+ /** Returns true if schema matches anyrow-style error envelope shape. */
17
+ export declare function isErrorEnvelope(schema: Record<string, unknown>): boolean;
18
+ /** Derives a canonical name for a shared error envelope (e.g. `Err400InvalidInput`). */
19
+ export declare function deriveErrorEnvelopeName(schema: Record<string, unknown>, fallbackStatus?: number): string;
20
+ /** Derives a human-readable schema component name from operation context. */
21
+ export declare function deriveSchemaName(ctx: SchemaNameContext): string;
22
+ //# sourceMappingURL=codegen-schema-naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-schema-naming.d.ts","sourceRoot":"","sources":["../src/codegen-schema-naming.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAI3F,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAqFD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASxE;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBxG;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAY/D"}
@@ -0,0 +1,178 @@
1
+ import type { Honey } from "./index.ts";
2
+ import type { TreeNode } from "./tree.ts";
3
+ export { prepareCodegen } from "./codegen-loaders.ts";
4
+ export { toYaml, yamlSiblingPath } from "./yaml.ts";
5
+ type ErrorEntry = {
6
+ errorKey: string;
7
+ status: number;
8
+ statusKey: string;
9
+ };
10
+ type RouteManifestEntry = {
11
+ errors: string[];
12
+ input?: Record<string, unknown>;
13
+ meta: Record<string, unknown>;
14
+ method: string;
15
+ middleware: string[];
16
+ output?: Record<string, unknown>;
17
+ params: string[];
18
+ path: string;
19
+ };
20
+ type RouteManifest = {
21
+ errors: ErrorEntry[];
22
+ routes: RouteManifestEntry[];
23
+ };
24
+ type OpenApiInfo = {
25
+ description?: string;
26
+ title: string;
27
+ version: string;
28
+ };
29
+ export type OpenApiSpec = {
30
+ components?: {
31
+ schemas?: Record<string, Record<string, unknown>>;
32
+ securitySchemes?: Record<string, unknown>;
33
+ };
34
+ info: OpenApiInfo;
35
+ openapi: string;
36
+ paths: Record<string, Record<string, Record<string, unknown>>>;
37
+ };
38
+ export declare const DEFAULT_ERROR_JSON_SCHEMA: Record<string, unknown>;
39
+ export { normalizeSecurity } from "./meta-spec.ts";
40
+ export declare function canonicalizeSchema(schema: Record<string, unknown>): string;
41
+ export declare function deduplicateSchemas(spec: OpenApiSpec): OpenApiSpec;
42
+ export type OpenApiSanitizeOptions = {
43
+ stripSecurityRequirements?: string[];
44
+ stripSecuritySchemes?: string[];
45
+ stripXExtensions?: boolean | string[];
46
+ };
47
+ export declare function sanitizeOpenApiSpec(spec: OpenApiSpec, options: OpenApiSanitizeOptions): OpenApiSpec;
48
+ export declare function resolveRefs(spec: OpenApiSpecInput): OpenApiSpecInput;
49
+ export declare function generateManifest<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): RouteManifest;
50
+ export type OpenApiRouteInfo<TMeta = unknown> = {
51
+ meta: TMeta;
52
+ method: string;
53
+ path: string;
54
+ };
55
+ export declare function generateOpenApi<TEnv, TCtx, TMeta = unknown>(app: Honey<TEnv, TCtx, unknown, TMeta, unknown, string, string>, options: {
56
+ filterRoutes?: (route: OpenApiRouteInfo<TMeta>) => boolean;
57
+ info: OpenApiInfo;
58
+ /** Named metaSpec profile — selects which emitted keys this document carries */
59
+ profile?: string;
60
+ securitySchemes?: Record<string, unknown>;
61
+ }): Promise<OpenApiSpec>;
62
+ export declare function extractSchemas<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): Record<string, Record<string, unknown>>;
63
+ type RouteConfig = {
64
+ boundaryErrorKey: string | null;
65
+ errorKeys: string[];
66
+ /** JSON Schema per input source — { json?, form?, params?, search?, headers?, cookies? }; null = no input validation */
67
+ inputSchemas: Record<string, Record<string, unknown>> | null;
68
+ meta: Record<string, unknown> | null;
69
+ method: string;
70
+ middlewareNames: string[];
71
+ /**
72
+ * JSON Schema per (contentType, statusKey). Special case: `redirect` contentType holds
73
+ * `Record<statusKey, true>` with no schema (declaration-only, no body to validate).
74
+ * null = no output validation declared.
75
+ */
76
+ outputSchemas: Record<string, Record<string, unknown>> | null;
77
+ path: string;
78
+ };
79
+ export declare function generateRouteTree(routes: RouteConfig[]): string;
80
+ export declare function generateRouteTreeFromApp<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): string;
81
+ /**
82
+ * Generate static route tree code from a pre-built RouteTree.
83
+ * Supports gateway patterns: import service trees → enrich meta → mergeTree → generate.
84
+ */
85
+ export declare function generateRouteTreeFromRouteTree(rt: {
86
+ root: TreeNode;
87
+ }): string;
88
+ type GenerateTypesOptions = {
89
+ baseCtxName?: string;
90
+ inlineEnvType?: string;
91
+ inlineMiddlewareType?: string | null;
92
+ /** Inline type string for TTaps — emitted as typed tap() override on context */
93
+ inlineTapsType?: string | null;
94
+ /** per-route middleware additions keyed by "method /path" (e.g. "get /v1/auth/me") */
95
+ routeMiddleware?: Record<string, string>;
96
+ /** structured per-property middleware data for sub-type dedup */
97
+ routeMiddlewareProps?: Record<string, Array<{
98
+ name: string;
99
+ opt: boolean;
100
+ type: string;
101
+ }>>;
102
+ };
103
+ export declare function generateTypes<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>, options: GenerateTypesOptions): string;
104
+ export type OpenApiSpecInput = {
105
+ components?: {
106
+ schemas?: Record<string, Record<string, unknown>>;
107
+ securitySchemes?: Record<string, unknown>;
108
+ };
109
+ info: {
110
+ title: string;
111
+ version: string;
112
+ };
113
+ openapi: string;
114
+ paths: Record<string, Record<string, Record<string, unknown>>>;
115
+ };
116
+ export declare function mergeSpecs(...specs: OpenApiSpecInput[]): OpenApiSpecInput;
117
+ export declare function scopeSpec(spec: OpenApiSpecInput, filter: {
118
+ excludeTags?: string[];
119
+ operationIds?: string[];
120
+ pathPrefix?: string;
121
+ tags?: string[];
122
+ }): OpenApiSpecInput;
123
+ type ServiceEntry = {
124
+ idempotent?: boolean;
125
+ invalidate?: string[];
126
+ method: string;
127
+ params?: string[];
128
+ path: string;
129
+ realtime?: boolean;
130
+ ws?: boolean;
131
+ sse?: boolean;
132
+ };
133
+ type NestedServiceNode = {
134
+ kind: "leaf";
135
+ entry: ServiceEntry;
136
+ } | {
137
+ kind: "ns";
138
+ children: Map<string, NestedServiceNode>;
139
+ };
140
+ type GeneratedSDK = {
141
+ files: {
142
+ client: string;
143
+ index: string;
144
+ map: string;
145
+ runtime: string | null;
146
+ types: string;
147
+ };
148
+ serviceMap: Record<string, Record<string, ServiceEntry>>;
149
+ };
150
+ type SDKMethod = {
151
+ action: string;
152
+ errorsByStatusType: string | null;
153
+ inputHasMandatory: boolean;
154
+ inputType: string;
155
+ realtime: boolean;
156
+ resource: string;
157
+ responseType: string;
158
+ sse: boolean;
159
+ ws: boolean;
160
+ };
161
+ export declare function extractOpenApiPathParams(path: string): string[];
162
+ export declare function isSSEOperation(operation: Record<string, unknown>): boolean;
163
+ /** JSON Schema → TypeScript type string (shim — delegates to IR pipeline). */
164
+ export declare function jsonSchemaToTS(schema: Record<string, unknown> | undefined, depth?: number): string;
165
+ export declare function isStandardErrEnvelope(schema: Record<string, unknown>): {
166
+ keys: string[];
167
+ status: number;
168
+ } | null;
169
+ export declare function collectSDKMethods(spec: OpenApiSpecInput): {
170
+ serviceMap: Record<string, Record<string, ServiceEntry>>;
171
+ nestedMap: Map<string, NestedServiceNode>;
172
+ methods: SDKMethod[];
173
+ };
174
+ export declare function generateSDK(spec: OpenApiSpecInput, options?: {
175
+ name?: string;
176
+ stem?: string;
177
+ }): GeneratedSDK;
178
+ //# sourceMappingURL=codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { HoneyRes } from "./response.ts";
2
+ import type { PendingTap } from "./types.ts";
3
+ /**
4
+ * HoneyContext uses `declare` for properties set after construction and
5
+ * class-level getters for lazy-computed properties. No Object.defineProperty
6
+ * on the hot path — V8 optimizes class shapes via hidden classes.
7
+ *
8
+ * `declare` fields have no private brand, so Omit<HoneyContext, "res">
9
+ * works structurally for ApplyOutput type narrowing.
10
+ */
11
+ export declare class HoneyContext<TEnv = Record<string, unknown>> {
12
+ readonly background: (p: Promise<unknown>) => void;
13
+ readonly env: TEnv;
14
+ readonly params: Record<string, string>;
15
+ readonly req: Request;
16
+ readonly res: HoneyRes;
17
+ readonly cookies: Record<string, string>;
18
+ readonly errors: Record<string, (...args: never[]) => unknown>;
19
+ readonly executionCtx: {
20
+ waitUntil?: (p: Promise<unknown>) => void;
21
+ } | undefined;
22
+ readonly headers: Record<string, string>;
23
+ readonly meta: Record<string, unknown>;
24
+ readonly path: string;
25
+ readonly realtime: {
26
+ publish(topic: string, data: unknown): void;
27
+ };
28
+ readonly routePattern: string;
29
+ readonly search: Record<string, string>;
30
+ readonly searchAll: Record<string, string[]>;
31
+ /** @internal */ _lzCookies: Record<string, string> | null;
32
+ /** @internal */ _lzHeaders: Record<string, string> | null;
33
+ /** @internal */ _lzSearch: Record<string, string> | null;
34
+ /** @internal */ _lzSearchAll: Record<string, string[]> | null;
35
+ /** @internal */ _lzUrlFn: (() => URL) | null;
36
+ /** @internal */ _errorToResponse: ((thrown: unknown) => Promise<Response>) | null;
37
+ /** @internal */ _isErrorResponse: boolean;
38
+ /** @internal */ _pendingTaps: PendingTap[] | null;
39
+ constructor(opts: {
40
+ env: TEnv;
41
+ executionCtx?: {
42
+ waitUntil?: (p: Promise<unknown>) => void;
43
+ };
44
+ meta?: Record<string, unknown>;
45
+ params: Record<string, string>;
46
+ path?: string;
47
+ req: Request;
48
+ routePattern?: string;
49
+ urlFn?: () => URL;
50
+ });
51
+ /** @internal */
52
+ _setErrors(errors: Record<string, (...args: never[]) => unknown>): void;
53
+ /** Queue a side-effect to fire after handler returns successfully */
54
+ tap(key: string, payload: unknown): void;
55
+ }
56
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAsD5C;;;;;;;GAOG;AACH,qBAAa,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IAGtB,SAAiB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,SAAiB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,CAAA;IACtE,SAAiB,YAAY,EAAE;QAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,SAAS,CAAA;IACxF,SAAiB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,SAAiB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9C,SAAiB,IAAI,EAAE,MAAM,CAAA;IAC7B,SAAiB,QAAQ,EAAE;QAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAA;IAC1E,SAAiB,YAAY,EAAE,MAAM,CAAA;IACrC,SAAiB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,SAAiB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAGpD,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACzD,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAC9D,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAA;IAG7C,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAA;IAClF,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAG1C,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAElD,YAAY,IAAI,EAAE;QACjB,GAAG,EAAE,IAAI,CAAA;QACT,YAAY,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;SAAE,CAAA;QAC5D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,OAAO,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAA;KACjB,EAkCA;IAED,gBAAgB;IAChB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAEtE;IAED,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAMvC;CAkDD"}
@@ -0,0 +1,3 @@
1
+ export declare function sign(value: string, secret: string): Promise<string>;
2
+ export declare function verify(signed: string, secrets: string[]): Promise<string | null>;
3
+ //# sourceMappingURL=cookie-sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-sign.d.ts","sourceRoot":"","sources":["../src/cookie-sign.ts"],"names":[],"mappings":"AA4BA,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAetF"}
@@ -0,0 +1,12 @@
1
+ export type CookieOptions = {
2
+ domain?: string;
3
+ expires?: Date;
4
+ httpOnly?: boolean;
5
+ maxAge?: number;
6
+ path?: string;
7
+ sameSite?: "lax" | "none" | "strict";
8
+ secure?: boolean;
9
+ value: string;
10
+ };
11
+ export declare function serializeCookie(name: string, opts: CookieOptions): string;
12
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACb,CAAA;AA2BD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAmDzE"}
package/dist/cors.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { MiddlewareFn } from "./middleware.ts";
2
+ export type CORSOptions = {
3
+ credentials?: boolean;
4
+ exposeHeaders?: string[];
5
+ headers?: string[];
6
+ maxAge?: number;
7
+ methods?: string[];
8
+ origin?: "*" | ((origin: string) => boolean) | string | string[];
9
+ };
10
+ export declare function cors(options?: CORSOptions): MiddlewareFn<{
11
+ req: Request;
12
+ }, {}>;
13
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;CAChE,CAAA;AAaD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAqE9E"}
@@ -0,0 +1,2 @@
1
+ export declare function timingSafeEqual(a: string, b: string): Promise<boolean>;
2
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAWA,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI5E"}
package/dist/csrf.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { MiddlewareFn } from "./middleware.ts";
2
+ type CSRFOptions = {
3
+ origin?: ((origin: string) => boolean) | string | string[];
4
+ };
5
+ export declare function csrf(options?: CSRFOptions): MiddlewareFn<{
6
+ req: Request;
7
+ }, {}>;
8
+ export {};
9
+ //# sourceMappingURL=csrf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGnD,KAAK,WAAW,GAAG;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;CAC1D,CAAA;AAYD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAkC9E"}
@@ -0,0 +1,33 @@
1
+ import type { MiddlewareFn } from "./middleware.ts";
2
+ import type { LoggerInstance } from "./logger.ts";
3
+ type BodyOmittedReason = "content-type" | "disabled" | "missing" | "read-error" | "too-large";
4
+ type CurlLogData = {
5
+ bodyIncluded: boolean;
6
+ bodyOmittedReason: BodyOmittedReason | null;
7
+ curl: string;
8
+ duration: number;
9
+ method: string;
10
+ path: string;
11
+ requestId: string | null;
12
+ status: number;
13
+ };
14
+ type CurlLoggerBodyOptions = {
15
+ allowContentTypes?: string[];
16
+ maxBytes?: number;
17
+ };
18
+ type CurlLoggerOptions = {
19
+ body?: boolean | CurlLoggerBodyOptions;
20
+ instance?: LoggerInstance;
21
+ log?: (data: CurlLogData) => void;
22
+ redactHeader?: (name: string, value: string) => string | null;
23
+ redactQueryParam?: (name: string, value: string) => string | null;
24
+ skip?: (data: CurlLogData) => boolean;
25
+ };
26
+ declare function buildCurlLogData(request: Request, options?: Pick<CurlLoggerOptions, "body" | "redactHeader" | "redactQueryParam">): Promise<Pick<CurlLogData, "bodyIncluded" | "bodyOmittedReason" | "curl">>;
27
+ declare function curlLogger(options?: CurlLoggerOptions): MiddlewareFn<{
28
+ path: string;
29
+ req: Request;
30
+ }, {}>;
31
+ export { buildCurlLogData, curlLogger };
32
+ export type { BodyOmittedReason, CurlLogData, CurlLoggerBodyOptions, CurlLoggerOptions };
33
+ //# sourceMappingURL=curl-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curl-logger.d.ts","sourceRoot":"","sources":["../src/curl-logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,iBAAiB,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAA;AAE7F,KAAK,WAAW,GAAG;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAA;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAC7D,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAA;CACrC,CAAA;AA2FD,iBAAe,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,GAAG,kBAAkB,CAAC,GAC7E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAwC3E;AAED,iBAAS,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAgDjG;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAA;AACvC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,16 @@
1
+ export type ServeRuntime = "bun" | "cloudflare" | "deno" | "node";
2
+ type DetectGlobal = {
3
+ Bun?: unknown;
4
+ Deno?: unknown;
5
+ navigator?: {
6
+ userAgent?: string;
7
+ };
8
+ process?: {
9
+ versions?: {
10
+ node?: string;
11
+ };
12
+ };
13
+ };
14
+ export declare function detectRuntime(g?: DetectGlobal): ServeRuntime;
15
+ export {};
16
+ //# sourceMappingURL=detect-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-runtime.d.ts","sourceRoot":"","sources":["../src/detect-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAA;AAEjE,KAAK,YAAY,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAC1C,CAAA;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAE,YAAyB,GAAG,YAAY,CAOxE"}