@lovrozagar/honey 0.7.3 → 1.0.0-rc.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.
Files changed (1005) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +930 -1664
  3. package/bin/honey.js +87 -27
  4. package/dist/adapters/bun/serve.d.ts +18 -0
  5. package/dist/adapters/bun/serve.js +89 -0
  6. package/dist/adapters/fetch-request.d.ts +20 -0
  7. package/dist/adapters/fetch-request.js +29 -0
  8. package/dist/adapters/node/headers.d.ts +27 -0
  9. package/dist/adapters/node/headers.js +86 -0
  10. package/dist/adapters/node/request.d.ts +16 -0
  11. package/dist/adapters/node/request.js +214 -0
  12. package/dist/adapters/node/response.d.ts +11 -0
  13. package/dist/adapters/node/response.js +126 -0
  14. package/dist/adapters/node/serve.d.ts +39 -0
  15. package/dist/adapters/node/serve.js +205 -0
  16. package/dist/adapters/node/url.d.ts +13 -0
  17. package/dist/adapters/node/url.js +87 -0
  18. package/dist/adapters/serve.d.ts +36 -0
  19. package/dist/adapters/serve.js +52 -0
  20. package/dist/build/artifacts.d.ts +34 -0
  21. package/dist/build/artifacts.js +123 -0
  22. package/dist/build/cli-args.d.ts +30 -0
  23. package/dist/build/cli-args.js +97 -0
  24. package/dist/build/cli.d.ts +11 -0
  25. package/dist/build/cli.js +150 -0
  26. package/dist/build/config.d.ts +102 -0
  27. package/dist/build/config.js +89 -0
  28. package/dist/build/generate.d.ts +19 -0
  29. package/dist/build/generate.js +80 -0
  30. package/dist/build/glob.d.ts +8 -0
  31. package/dist/build/glob.js +97 -0
  32. package/dist/build/index.d.ts +3 -58
  33. package/dist/build/index.js +3 -173
  34. package/dist/build/init.d.ts +3 -0
  35. package/dist/build/init.js +131 -0
  36. package/dist/build/loaders.d.ts +33 -0
  37. package/dist/build/loaders.js +105 -0
  38. package/dist/build/plugin.d.ts +52 -0
  39. package/dist/build/plugin.js +146 -0
  40. package/dist/build/source.d.ts +21 -0
  41. package/dist/build/source.js +100 -0
  42. package/dist/build/targets.d.ts +59 -0
  43. package/dist/build/targets.js +107 -0
  44. package/dist/context/context.d.ts +111 -0
  45. package/dist/context/context.js +213 -0
  46. package/dist/context/cookie-sign.d.ts +38 -0
  47. package/dist/context/cookie-sign.js +113 -0
  48. package/dist/context/cookie.d.ts +28 -0
  49. package/dist/context/cookie.js +142 -0
  50. package/dist/context/peer.d.ts +34 -0
  51. package/dist/context/peer.js +190 -0
  52. package/dist/errors/error.d.ts +60 -0
  53. package/dist/errors/error.js +84 -0
  54. package/dist/errors/errors.d.ts +45 -0
  55. package/dist/errors/errors.js +31 -0
  56. package/dist/errors/on-error.d.ts +10 -0
  57. package/dist/errors/on-error.js +204 -0
  58. package/dist/errors/problem-json.d.ts +14 -0
  59. package/dist/errors/problem-json.js +58 -0
  60. package/dist/errors/projector.d.ts +50 -0
  61. package/dist/errors/projector.js +107 -0
  62. package/dist/i18n/error-i18n.d.ts +26 -0
  63. package/dist/i18n/error-i18n.js +77 -0
  64. package/dist/i18n/i18n.d.ts +21 -0
  65. package/dist/i18n/i18n.js +40 -0
  66. package/dist/i18n/icu.d.ts +29 -0
  67. package/dist/i18n/icu.js +170 -0
  68. package/dist/i18n/index.d.ts +4 -0
  69. package/dist/i18n/index.js +3 -0
  70. package/dist/index.d.ts +30 -746
  71. package/dist/index.js +12 -2364
  72. package/dist/input/accepts.d.ts +5 -0
  73. package/dist/input/accepts.js +105 -0
  74. package/dist/input/binary.d.ts +20 -0
  75. package/dist/input/binary.js +40 -0
  76. package/dist/input/body-kind.d.ts +15 -0
  77. package/dist/input/body-kind.js +47 -0
  78. package/dist/input/body-limit.d.ts +21 -0
  79. package/dist/input/body-limit.js +99 -0
  80. package/dist/input/cookies.d.ts +7 -0
  81. package/dist/input/cookies.js +8 -0
  82. package/dist/input/form.d.ts +10 -0
  83. package/dist/input/form.js +24 -0
  84. package/dist/input/headers.d.ts +7 -0
  85. package/dist/input/headers.js +8 -0
  86. package/dist/input/input.d.ts +91 -0
  87. package/dist/input/input.js +88 -0
  88. package/dist/input/json.d.ts +10 -0
  89. package/dist/input/json.js +22 -0
  90. package/dist/input/params.d.ts +7 -0
  91. package/dist/input/params.js +8 -0
  92. package/dist/input/query.d.ts +10 -0
  93. package/dist/input/query.js +17 -0
  94. package/dist/mcp/mount.d.ts +116 -0
  95. package/dist/mcp/mount.js +45 -0
  96. package/dist/mcp/oauth.d.ts +14 -0
  97. package/dist/mcp/oauth.js +88 -0
  98. package/dist/mcp/uploads.d.ts +36 -0
  99. package/dist/mcp/uploads.js +171 -0
  100. package/dist/mcp/url-files.d.ts +32 -0
  101. package/dist/mcp/url-files.js +75 -0
  102. package/dist/meta/meta-spec-apply.d.ts +25 -0
  103. package/dist/meta/meta-spec-apply.js +83 -0
  104. package/dist/meta/meta-spec-merge.d.ts +103 -0
  105. package/dist/meta/meta-spec-merge.js +50 -0
  106. package/dist/meta/meta-spec-validate.d.ts +61 -0
  107. package/dist/meta/meta-spec-validate.js +166 -0
  108. package/dist/meta/meta-spec.d.ts +49 -0
  109. package/dist/meta/meta-spec.js +197 -0
  110. package/dist/middleware/compress.d.ts +15 -0
  111. package/dist/middleware/compress.js +93 -0
  112. package/dist/middleware/cors.d.ts +18 -0
  113. package/dist/middleware/cors.js +80 -0
  114. package/dist/middleware/csrf.d.ts +11 -0
  115. package/dist/middleware/csrf.js +65 -0
  116. package/dist/middleware/ip-restrict.d.ts +10 -0
  117. package/dist/middleware/ip-restrict.js +82 -0
  118. package/dist/middleware/middleware.d.ts +53 -0
  119. package/dist/middleware/middleware.js +112 -0
  120. package/dist/middleware/powered-by.d.ts +6 -0
  121. package/dist/middleware/powered-by.js +13 -0
  122. package/dist/middleware/rate-limit.d.ts +40 -0
  123. package/dist/middleware/rate-limit.js +90 -0
  124. package/dist/middleware/request-id.d.ts +25 -0
  125. package/dist/middleware/request-id.js +30 -0
  126. package/dist/middleware/secure-headers.d.ts +18 -0
  127. package/dist/middleware/secure-headers.js +36 -0
  128. package/dist/middleware/server-timing.d.ts +8 -0
  129. package/dist/middleware/server-timing.js +52 -0
  130. package/dist/middleware/timeout.d.ts +6 -0
  131. package/dist/middleware/timeout.js +29 -0
  132. package/dist/observability/curl-logger.d.ts +46 -0
  133. package/dist/observability/curl-logger.js +175 -0
  134. package/dist/observability/request-to-curl.d.ts +17 -0
  135. package/dist/observability/request-to-curl.js +47 -0
  136. package/dist/openapi/collect.d.ts +56 -18
  137. package/dist/openapi/collect.js +109 -23
  138. package/dist/openapi/components.d.ts +9 -0
  139. package/dist/openapi/components.js +90 -0
  140. package/dist/openapi/docs-page.d.ts +20 -18
  141. package/dist/openapi/docs-page.js +28 -46
  142. package/dist/openapi/document.d.ts +33 -26
  143. package/dist/openapi/document.js +21 -780
  144. package/dist/openapi/extract-schemas.d.ts +11 -0
  145. package/dist/openapi/extract-schemas.js +31 -0
  146. package/dist/openapi/generate.d.ts +47 -0
  147. package/dist/openapi/generate.js +180 -0
  148. package/dist/openapi/manifest.d.ts +41 -0
  149. package/dist/openapi/manifest.js +49 -0
  150. package/dist/openapi/output-keys.d.ts +6 -0
  151. package/dist/openapi/output-keys.js +24 -0
  152. package/dist/openapi/paths.d.ts +35 -0
  153. package/dist/openapi/paths.js +175 -0
  154. package/dist/openapi/register.d.ts +14 -3
  155. package/dist/openapi/register.js +13 -20
  156. package/dist/openapi/responses.d.ts +44 -0
  157. package/dist/openapi/responses.js +159 -0
  158. package/dist/openapi/scalar.d.ts +4 -14
  159. package/dist/openapi/scalar.js +5 -7
  160. package/dist/openapi/security.d.ts +4 -0
  161. package/dist/openapi/security.js +25 -0
  162. package/dist/openapi/serve.d.ts +25 -9
  163. package/dist/openapi/serve.js +108 -29
  164. package/dist/openapi/servers.d.ts +19 -0
  165. package/dist/openapi/servers.js +72 -0
  166. package/dist/openapi/swagger.d.ts +4 -14
  167. package/dist/openapi/swagger.js +5 -7
  168. package/dist/openapi/tags.d.ts +20 -0
  169. package/dist/openapi/tags.js +20 -0
  170. package/dist/openapi/webhooks.d.ts +19 -0
  171. package/dist/openapi/webhooks.js +70 -0
  172. package/dist/openapi/yaml.d.ts +8 -0
  173. package/dist/openapi/yaml.js +74 -0
  174. package/dist/proxy/headers.d.ts +30 -0
  175. package/dist/proxy/headers.js +86 -0
  176. package/dist/proxy/proxy.d.ts +39 -0
  177. package/dist/proxy/proxy.js +103 -0
  178. package/dist/proxy/upstream.d.ts +30 -0
  179. package/dist/proxy/upstream.js +116 -0
  180. package/dist/realtime/bus.d.ts +10 -13
  181. package/dist/realtime/bus.js +48 -93
  182. package/dist/realtime/invoke-user.d.ts +36 -0
  183. package/dist/realtime/invoke-user.js +103 -0
  184. package/dist/realtime/realtime.d.ts +7 -0
  185. package/dist/realtime/realtime.js +40 -0
  186. package/dist/realtime/route.d.ts +33 -27
  187. package/dist/realtime/route.js +27 -43
  188. package/dist/realtime/server.d.ts +24 -28
  189. package/dist/realtime/server.js +202 -225
  190. package/dist/response/binary.d.ts +18 -0
  191. package/dist/response/binary.js +10 -0
  192. package/dist/response/builder.d.ts +73 -0
  193. package/dist/response/builder.js +214 -0
  194. package/dist/response/cache-control.d.ts +30 -0
  195. package/dist/response/cache-control.js +74 -0
  196. package/dist/response/etag.d.ts +15 -0
  197. package/dist/response/etag.js +83 -0
  198. package/dist/response/media-type.d.ts +28 -0
  199. package/dist/response/media-type.js +97 -0
  200. package/dist/response/out-headers.d.ts +31 -0
  201. package/dist/response/out-headers.js +130 -0
  202. package/dist/response/pretty-json.d.ts +10 -0
  203. package/dist/response/pretty-json.js +44 -0
  204. package/dist/response/range.d.ts +19 -0
  205. package/dist/response/range.js +98 -0
  206. package/dist/response/response-headers.d.ts +11 -0
  207. package/dist/response/response-headers.js +21 -0
  208. package/dist/response/response.d.ts +69 -0
  209. package/dist/response/response.js +208 -0
  210. package/dist/response/sse.d.ts +41 -0
  211. package/dist/response/sse.js +73 -0
  212. package/dist/response/static.d.ts +20 -0
  213. package/dist/response/static.js +181 -0
  214. package/dist/response/status.d.ts +5 -0
  215. package/dist/response/status.js +68 -0
  216. package/dist/response/with-headers.d.ts +11 -0
  217. package/dist/response/with-headers.js +47 -0
  218. package/dist/routing/app-types.d.ts +175 -0
  219. package/dist/routing/app-types.js +1 -0
  220. package/dist/routing/app.d.ts +76 -0
  221. package/dist/routing/app.js +137 -0
  222. package/dist/routing/codegen-types.d.ts +17 -0
  223. package/dist/routing/codegen-types.js +1 -0
  224. package/dist/routing/delegate.d.ts +9 -0
  225. package/dist/routing/delegate.js +75 -0
  226. package/dist/routing/dispatch.d.ts +22 -0
  227. package/dist/routing/dispatch.js +255 -0
  228. package/dist/routing/finalize.d.ts +47 -0
  229. package/dist/routing/finalize.js +169 -0
  230. package/dist/routing/gateway-tree.d.ts +19 -0
  231. package/dist/routing/gateway-tree.js +74 -0
  232. package/dist/routing/invalidate-check.d.ts +58 -0
  233. package/dist/routing/invalidate-check.js +124 -0
  234. package/dist/routing/match.d.ts +22 -0
  235. package/dist/routing/match.js +108 -0
  236. package/dist/routing/meta-types.d.ts +34 -0
  237. package/dist/routing/meta-types.js +5 -0
  238. package/dist/routing/middleware-chain.d.ts +16 -0
  239. package/dist/routing/middleware-chain.js +41 -0
  240. package/dist/routing/output-types.d.ts +91 -0
  241. package/dist/routing/output-types.js +1 -0
  242. package/dist/routing/pattern.d.ts +55 -0
  243. package/dist/routing/pattern.js +219 -0
  244. package/dist/routing/record.d.ts +18 -0
  245. package/dist/routing/record.js +4 -0
  246. package/dist/routing/register.d.ts +135 -0
  247. package/dist/routing/register.js +155 -0
  248. package/dist/routing/request-path.d.ts +30 -0
  249. package/dist/routing/request-path.js +173 -0
  250. package/dist/routing/route-builder.d.ts +160 -0
  251. package/dist/routing/route-builder.js +86 -0
  252. package/dist/routing/route-tree.d.ts +18 -0
  253. package/dist/routing/route-tree.js +91 -0
  254. package/dist/routing/settings-chain.d.ts +75 -0
  255. package/dist/routing/settings-chain.js +137 -0
  256. package/dist/routing/settings.d.ts +90 -0
  257. package/dist/routing/settings.js +44 -0
  258. package/dist/routing/tap.d.ts +31 -0
  259. package/dist/routing/tap.js +77 -0
  260. package/dist/routing/tree-merge.d.ts +7 -0
  261. package/dist/routing/tree-merge.js +77 -0
  262. package/dist/routing/tree.d.ts +85 -0
  263. package/dist/routing/tree.js +196 -0
  264. package/dist/routing/types.d.ts +20 -0
  265. package/dist/routing/types.js +1 -0
  266. package/dist/routing/ws-builder.d.ts +62 -0
  267. package/dist/routing/ws-builder.js +109 -0
  268. package/dist/runtime/detect-runtime.d.ts +16 -0
  269. package/dist/runtime/detect-runtime.js +11 -0
  270. package/dist/runtime/optional-peer.d.ts +10 -0
  271. package/dist/runtime/optional-peer.js +19 -0
  272. package/dist/schema/arktype.d.ts +7 -0
  273. package/dist/schema/arktype.js +13 -0
  274. package/dist/schema/canonicalize.d.ts +8 -0
  275. package/dist/schema/canonicalize.js +19 -0
  276. package/dist/schema/effect.d.ts +7 -0
  277. package/dist/schema/effect.js +4 -0
  278. package/dist/schema/naming.d.ts +31 -0
  279. package/dist/schema/naming.js +116 -0
  280. package/dist/schema/sanitize-spec.d.ts +15 -0
  281. package/dist/schema/sanitize-spec.js +43 -0
  282. package/dist/schema/slots.d.ts +15 -0
  283. package/dist/schema/slots.js +179 -0
  284. package/dist/schema/to-json-schema.d.ts +34 -0
  285. package/dist/schema/to-json-schema.js +94 -0
  286. package/dist/schema/valibot.d.ts +4 -0
  287. package/dist/schema/valibot.js +153 -0
  288. package/dist/schema/yup.d.ts +3 -0
  289. package/dist/schema/yup.js +57 -0
  290. package/dist/schema/zod.d.ts +6 -0
  291. package/dist/schema/zod.js +192 -0
  292. package/dist/security/crypto.d.ts +7 -0
  293. package/dist/security/crypto.js +30 -0
  294. package/dist/streaming/producer-stream.d.ts +45 -0
  295. package/dist/streaming/producer-stream.js +251 -0
  296. package/dist/telemetry/fields.d.ts +43 -0
  297. package/dist/telemetry/fields.js +64 -0
  298. package/dist/telemetry/log-format.d.ts +7 -0
  299. package/dist/telemetry/log-format.js +43 -0
  300. package/dist/telemetry/logger.d.ts +44 -0
  301. package/dist/telemetry/logger.js +136 -0
  302. package/dist/telemetry/otel-subpath.d.ts +7 -0
  303. package/dist/telemetry/otel-subpath.js +5 -0
  304. package/dist/telemetry/otel.d.ts +50 -57
  305. package/dist/telemetry/otel.js +54 -130
  306. package/dist/telemetry/request-log.d.ts +22 -0
  307. package/dist/telemetry/request-log.js +83 -0
  308. package/dist/telemetry/request-trace.d.ts +123 -0
  309. package/dist/telemetry/request-trace.js +199 -0
  310. package/dist/telemetry/span-lifecycle.d.ts +11 -0
  311. package/dist/telemetry/span-lifecycle.js +114 -0
  312. package/dist/telemetry/traceparent.d.ts +40 -0
  313. package/dist/telemetry/traceparent.js +73 -0
  314. package/dist/testing/testing.d.ts +42 -0
  315. package/dist/testing/testing.js +101 -0
  316. package/dist/validation/content-type.d.ts +21 -0
  317. package/dist/validation/content-type.js +42 -0
  318. package/dist/validation/standard-schema.d.ts +41 -0
  319. package/dist/validation/standard-schema.js +5 -0
  320. package/dist/validation/validate-input.d.ts +45 -0
  321. package/dist/validation/validate-input.js +174 -0
  322. package/dist/validation/validate-output.d.ts +34 -0
  323. package/dist/validation/validate-output.js +107 -0
  324. package/dist/ws/bun.d.ts +30 -25
  325. package/dist/ws/bun.js +42 -46
  326. package/dist/ws/cloudflare.d.ts +6 -75
  327. package/dist/ws/cloudflare.js +37 -104
  328. package/dist/ws/contract.d.ts +74 -0
  329. package/dist/ws/contract.js +83 -0
  330. package/dist/ws/node.d.ts +12 -21
  331. package/dist/ws/node.js +103 -151
  332. package/dist/ws/origin.d.ts +23 -0
  333. package/dist/ws/origin.js +48 -0
  334. package/dist/ws/route.d.ts +14 -0
  335. package/dist/ws/route.js +5 -0
  336. package/dist/ws/session.d.ts +15 -6
  337. package/dist/ws/session.js +22 -23
  338. package/dist/ws/shared.d.ts +23 -33
  339. package/dist/ws/shared.js +53 -39
  340. package/package.json +169 -251
  341. package/dist/accepts.d.ts +0 -12
  342. package/dist/accepts.d.ts.map +0 -1
  343. package/dist/accepts.js +0 -126
  344. package/dist/accepts.js.map +0 -1
  345. package/dist/body-kind.d.ts +0 -26
  346. package/dist/body-kind.d.ts.map +0 -1
  347. package/dist/body-kind.js +0 -70
  348. package/dist/body-kind.js.map +0 -1
  349. package/dist/body-limit.d.ts +0 -26
  350. package/dist/body-limit.d.ts.map +0 -1
  351. package/dist/body-limit.js +0 -126
  352. package/dist/body-limit.js.map +0 -1
  353. package/dist/build/index.d.ts.map +0 -1
  354. package/dist/build/index.js.map +0 -1
  355. package/dist/cli-args.d.ts +0 -33
  356. package/dist/cli-args.d.ts.map +0 -1
  357. package/dist/cli-args.js +0 -102
  358. package/dist/cli-args.js.map +0 -1
  359. package/dist/cli-go/auth.go +0 -26
  360. package/dist/cli-go/config.go +0 -192
  361. package/dist/cli-go/errors.go +0 -75
  362. package/dist/cli-go/multipart.go +0 -79
  363. package/dist/cli-go/output.go +0 -163
  364. package/dist/cli-go/root.go +0 -30
  365. package/dist/cli-go/stream.go +0 -88
  366. package/dist/cli-go/version.go +0 -5
  367. package/dist/cli.d.ts +0 -3
  368. package/dist/cli.d.ts.map +0 -1
  369. package/dist/cli.js +0 -209
  370. package/dist/cli.js.map +0 -1
  371. package/dist/client/defaults.d.ts +0 -12
  372. package/dist/client/defaults.d.ts.map +0 -1
  373. package/dist/client/defaults.js +0 -48
  374. package/dist/client/defaults.js.map +0 -1
  375. package/dist/client/error.d.ts +0 -49
  376. package/dist/client/error.d.ts.map +0 -1
  377. package/dist/client/error.js +0 -71
  378. package/dist/client/error.js.map +0 -1
  379. package/dist/client/http.d.ts +0 -155
  380. package/dist/client/http.d.ts.map +0 -1
  381. package/dist/client/http.js +0 -571
  382. package/dist/client/http.js.map +0 -1
  383. package/dist/client/index.d.ts +0 -23
  384. package/dist/client/index.d.ts.map +0 -1
  385. package/dist/client/index.js +0 -95
  386. package/dist/client/index.js.map +0 -1
  387. package/dist/client/path.d.ts +0 -26
  388. package/dist/client/path.d.ts.map +0 -1
  389. package/dist/client/path.js +0 -163
  390. package/dist/client/path.js.map +0 -1
  391. package/dist/client/redirect-policy.d.ts +0 -12
  392. package/dist/client/redirect-policy.d.ts.map +0 -1
  393. package/dist/client/redirect-policy.js +0 -20
  394. package/dist/client/redirect-policy.js.map +0 -1
  395. package/dist/client/sdk.d.ts +0 -70
  396. package/dist/client/sdk.d.ts.map +0 -1
  397. package/dist/client/sdk.js +0 -292
  398. package/dist/client/sdk.js.map +0 -1
  399. package/dist/client/sse.d.ts +0 -23
  400. package/dist/client/sse.d.ts.map +0 -1
  401. package/dist/client/sse.js +0 -129
  402. package/dist/client/sse.js.map +0 -1
  403. package/dist/client/types.d.ts +0 -124
  404. package/dist/client/types.d.ts.map +0 -1
  405. package/dist/client/types.js +0 -2
  406. package/dist/client/types.js.map +0 -1
  407. package/dist/client/ws.d.ts +0 -22
  408. package/dist/client/ws.d.ts.map +0 -1
  409. package/dist/client/ws.js +0 -112
  410. package/dist/client/ws.js.map +0 -1
  411. package/dist/client-go/errors.go +0 -236
  412. package/dist/client-go/export.go +0 -44
  413. package/dist/client-go/invalidation.go +0 -371
  414. package/dist/client-go/nullable.go +0 -62
  415. package/dist/client-go/realtime.go +0 -354
  416. package/dist/client-go/result.go +0 -20
  417. package/dist/client-go/runtime.go +0 -975
  418. package/dist/client-go/sse.go +0 -159
  419. package/dist/client-go/transport.go +0 -495
  420. package/dist/client-go/ws.go +0 -128
  421. package/dist/client-info.d.ts +0 -36
  422. package/dist/client-info.d.ts.map +0 -1
  423. package/dist/client-info.js +0 -53
  424. package/dist/client-info.js.map +0 -1
  425. package/dist/client-mcp/README.md +0 -10
  426. package/dist/client-mcp/server.ts +0 -221
  427. package/dist/client-mcp/types.ts +0 -19
  428. package/dist/client-python/_errors.py +0 -115
  429. package/dist/client-python/_invalidation.py +0 -494
  430. package/dist/client-python/_realtime.py +0 -179
  431. package/dist/client-python/_runtime.py +0 -860
  432. package/dist/client-python/_sse.py +0 -155
  433. package/dist/client-python/_transport.py +0 -366
  434. package/dist/client-python/_ws.py +0 -159
  435. package/dist/client-python/py.typed +0 -0
  436. package/dist/client-rust/errors.rs +0 -220
  437. package/dist/client-rust/invalidation.rs +0 -412
  438. package/dist/client-rust/invalidation_sync.rs +0 -93
  439. package/dist/client-rust/nullable.rs +0 -17
  440. package/dist/client-rust/realtime.rs +0 -702
  441. package/dist/client-rust/result.rs +0 -22
  442. package/dist/client-rust/runtime.rs +0 -980
  443. package/dist/client-rust/runtime_sync.rs +0 -484
  444. package/dist/client-rust/sse.rs +0 -188
  445. package/dist/client-rust/ws.rs +0 -167
  446. package/dist/codegen-go-cli.d.ts +0 -22
  447. package/dist/codegen-go-cli.d.ts.map +0 -1
  448. package/dist/codegen-go-cli.js +0 -964
  449. package/dist/codegen-go-cli.js.map +0 -1
  450. package/dist/codegen-go.d.ts +0 -41
  451. package/dist/codegen-go.d.ts.map +0 -1
  452. package/dist/codegen-go.js +0 -872
  453. package/dist/codegen-go.js.map +0 -1
  454. package/dist/codegen-hash.d.ts +0 -3
  455. package/dist/codegen-hash.d.ts.map +0 -1
  456. package/dist/codegen-hash.js +0 -9
  457. package/dist/codegen-hash.js.map +0 -1
  458. package/dist/codegen-ir.d.ts +0 -190
  459. package/dist/codegen-ir.d.ts.map +0 -1
  460. package/dist/codegen-ir.js +0 -661
  461. package/dist/codegen-ir.js.map +0 -1
  462. package/dist/codegen-lang.d.ts +0 -65
  463. package/dist/codegen-lang.d.ts.map +0 -1
  464. package/dist/codegen-lang.js +0 -526
  465. package/dist/codegen-lang.js.map +0 -1
  466. package/dist/codegen-load.d.ts +0 -31
  467. package/dist/codegen-load.d.ts.map +0 -1
  468. package/dist/codegen-load.js +0 -138
  469. package/dist/codegen-load.js.map +0 -1
  470. package/dist/codegen-loaders.d.ts +0 -12
  471. package/dist/codegen-loaders.d.ts.map +0 -1
  472. package/dist/codegen-loaders.js +0 -55
  473. package/dist/codegen-loaders.js.map +0 -1
  474. package/dist/codegen-mcp.d.ts +0 -13
  475. package/dist/codegen-mcp.d.ts.map +0 -1
  476. package/dist/codegen-mcp.js +0 -368
  477. package/dist/codegen-mcp.js.map +0 -1
  478. package/dist/codegen-python.d.ts +0 -33
  479. package/dist/codegen-python.d.ts.map +0 -1
  480. package/dist/codegen-python.js +0 -828
  481. package/dist/codegen-python.js.map +0 -1
  482. package/dist/codegen-route-tree-intern.d.ts +0 -40
  483. package/dist/codegen-route-tree-intern.d.ts.map +0 -1
  484. package/dist/codegen-route-tree-intern.js +0 -221
  485. package/dist/codegen-route-tree-intern.js.map +0 -1
  486. package/dist/codegen-rust.d.ts +0 -18
  487. package/dist/codegen-rust.d.ts.map +0 -1
  488. package/dist/codegen-rust.js +0 -1293
  489. package/dist/codegen-rust.js.map +0 -1
  490. package/dist/codegen-sanitize.d.ts +0 -3
  491. package/dist/codegen-sanitize.d.ts.map +0 -1
  492. package/dist/codegen-sanitize.js +0 -56
  493. package/dist/codegen-sanitize.js.map +0 -1
  494. package/dist/codegen-schema-naming.d.ts +0 -27
  495. package/dist/codegen-schema-naming.d.ts.map +0 -1
  496. package/dist/codegen-schema-naming.js +0 -150
  497. package/dist/codegen-schema-naming.js.map +0 -1
  498. package/dist/codegen-sdk-model.d.ts +0 -71
  499. package/dist/codegen-sdk-model.d.ts.map +0 -1
  500. package/dist/codegen-sdk-model.js +0 -179
  501. package/dist/codegen-sdk-model.js.map +0 -1
  502. package/dist/codegen.d.ts +0 -187
  503. package/dist/codegen.d.ts.map +0 -1
  504. package/dist/codegen.js +0 -4619
  505. package/dist/codegen.js.map +0 -1
  506. package/dist/context.d.ts +0 -86
  507. package/dist/context.d.ts.map +0 -1
  508. package/dist/context.js +0 -242
  509. package/dist/context.js.map +0 -1
  510. package/dist/cookie-sign.d.ts +0 -17
  511. package/dist/cookie-sign.d.ts.map +0 -1
  512. package/dist/cookie-sign.js +0 -104
  513. package/dist/cookie-sign.js.map +0 -1
  514. package/dist/cookie.d.ts +0 -24
  515. package/dist/cookie.d.ts.map +0 -1
  516. package/dist/cookie.js +0 -138
  517. package/dist/cookie.js.map +0 -1
  518. package/dist/cors.d.ts +0 -14
  519. package/dist/cors.d.ts.map +0 -1
  520. package/dist/cors.js +0 -87
  521. package/dist/cors.js.map +0 -1
  522. package/dist/crypto.d.ts +0 -7
  523. package/dist/crypto.d.ts.map +0 -1
  524. package/dist/crypto.js +0 -38
  525. package/dist/crypto.js.map +0 -1
  526. package/dist/csrf.d.ts +0 -28
  527. package/dist/csrf.d.ts.map +0 -1
  528. package/dist/csrf.js +0 -79
  529. package/dist/csrf.js.map +0 -1
  530. package/dist/curl-logger.d.ts +0 -44
  531. package/dist/curl-logger.d.ts.map +0 -1
  532. package/dist/curl-logger.js +0 -199
  533. package/dist/curl-logger.js.map +0 -1
  534. package/dist/detect-runtime.d.ts +0 -16
  535. package/dist/detect-runtime.d.ts.map +0 -1
  536. package/dist/detect-runtime.js +0 -13
  537. package/dist/detect-runtime.js.map +0 -1
  538. package/dist/dict.d.ts +0 -11
  539. package/dist/dict.d.ts.map +0 -1
  540. package/dist/dict.js +0 -13
  541. package/dist/dict.js.map +0 -1
  542. package/dist/error.d.ts +0 -21
  543. package/dist/error.d.ts.map +0 -1
  544. package/dist/error.js +0 -44
  545. package/dist/error.js.map +0 -1
  546. package/dist/errors.d.ts +0 -40
  547. package/dist/errors.d.ts.map +0 -1
  548. package/dist/errors.js +0 -39
  549. package/dist/errors.js.map +0 -1
  550. package/dist/etag.d.ts +0 -11
  551. package/dist/etag.d.ts.map +0 -1
  552. package/dist/etag.js +0 -82
  553. package/dist/etag.js.map +0 -1
  554. package/dist/feature-detect.d.ts +0 -25
  555. package/dist/feature-detect.d.ts.map +0 -1
  556. package/dist/feature-detect.js +0 -144
  557. package/dist/feature-detect.js.map +0 -1
  558. package/dist/feature-load.d.ts +0 -3
  559. package/dist/feature-load.d.ts.map +0 -1
  560. package/dist/feature-load.js +0 -36
  561. package/dist/feature-load.js.map +0 -1
  562. package/dist/feature-slots.d.ts +0 -44
  563. package/dist/feature-slots.d.ts.map +0 -1
  564. package/dist/feature-slots.js +0 -48
  565. package/dist/feature-slots.js.map +0 -1
  566. package/dist/fetch-request.d.ts +0 -10
  567. package/dist/fetch-request.d.ts.map +0 -1
  568. package/dist/fetch-request.js +0 -13
  569. package/dist/fetch-request.js.map +0 -1
  570. package/dist/gen-process.d.ts +0 -15
  571. package/dist/gen-process.d.ts.map +0 -1
  572. package/dist/gen-process.js +0 -43
  573. package/dist/gen-process.js.map +0 -1
  574. package/dist/gen-write.d.ts +0 -19
  575. package/dist/gen-write.d.ts.map +0 -1
  576. package/dist/gen-write.js +0 -120
  577. package/dist/gen-write.js.map +0 -1
  578. package/dist/glob.d.ts +0 -21
  579. package/dist/glob.d.ts.map +0 -1
  580. package/dist/glob.js +0 -115
  581. package/dist/glob.js.map +0 -1
  582. package/dist/go-type-emitter.d.ts +0 -47
  583. package/dist/go-type-emitter.d.ts.map +0 -1
  584. package/dist/go-type-emitter.js +0 -594
  585. package/dist/go-type-emitter.js.map +0 -1
  586. package/dist/honey-response.d.ts +0 -82
  587. package/dist/honey-response.d.ts.map +0 -1
  588. package/dist/honey-response.js +0 -338
  589. package/dist/honey-response.js.map +0 -1
  590. package/dist/i18n-slot.d.ts +0 -15
  591. package/dist/i18n-slot.d.ts.map +0 -1
  592. package/dist/i18n-slot.js +0 -14
  593. package/dist/i18n-slot.js.map +0 -1
  594. package/dist/i18n.d.ts +0 -29
  595. package/dist/i18n.d.ts.map +0 -1
  596. package/dist/i18n.js +0 -250
  597. package/dist/i18n.js.map +0 -1
  598. package/dist/index.d.ts.map +0 -1
  599. package/dist/index.js.map +0 -1
  600. package/dist/init.d.ts +0 -5
  601. package/dist/init.d.ts.map +0 -1
  602. package/dist/init.js +0 -140
  603. package/dist/init.js.map +0 -1
  604. package/dist/input.d.ts +0 -6
  605. package/dist/input.d.ts.map +0 -1
  606. package/dist/input.js +0 -4
  607. package/dist/input.js.map +0 -1
  608. package/dist/invalidate-check.d.ts +0 -61
  609. package/dist/invalidate-check.d.ts.map +0 -1
  610. package/dist/invalidate-check.js +0 -163
  611. package/dist/invalidate-check.js.map +0 -1
  612. package/dist/invoke-user.d.ts +0 -35
  613. package/dist/invoke-user.d.ts.map +0 -1
  614. package/dist/invoke-user.js +0 -73
  615. package/dist/invoke-user.js.map +0 -1
  616. package/dist/ip-restrict.d.ts +0 -24
  617. package/dist/ip-restrict.d.ts.map +0 -1
  618. package/dist/ip-restrict.js +0 -60
  619. package/dist/ip-restrict.js.map +0 -1
  620. package/dist/ip.d.ts +0 -39
  621. package/dist/ip.d.ts.map +0 -1
  622. package/dist/ip.js +0 -209
  623. package/dist/ip.js.map +0 -1
  624. package/dist/logger.d.ts +0 -45
  625. package/dist/logger.d.ts.map +0 -1
  626. package/dist/logger.js +0 -113
  627. package/dist/logger.js.map +0 -1
  628. package/dist/media-type.d.ts +0 -30
  629. package/dist/media-type.d.ts.map +0 -1
  630. package/dist/media-type.js +0 -97
  631. package/dist/media-type.js.map +0 -1
  632. package/dist/meta-spec-merge.d.ts +0 -32
  633. package/dist/meta-spec-merge.d.ts.map +0 -1
  634. package/dist/meta-spec-merge.js +0 -68
  635. package/dist/meta-spec-merge.js.map +0 -1
  636. package/dist/meta-spec.d.ts +0 -94
  637. package/dist/meta-spec.d.ts.map +0 -1
  638. package/dist/meta-spec.js +0 -535
  639. package/dist/meta-spec.js.map +0 -1
  640. package/dist/middleware.d.ts +0 -77
  641. package/dist/middleware.d.ts.map +0 -1
  642. package/dist/middleware.js +0 -253
  643. package/dist/middleware.js.map +0 -1
  644. package/dist/node-request.d.ts +0 -104
  645. package/dist/node-request.d.ts.map +0 -1
  646. package/dist/node-request.js +0 -407
  647. package/dist/node-request.js.map +0 -1
  648. package/dist/node.d.ts +0 -30
  649. package/dist/node.d.ts.map +0 -1
  650. package/dist/node.js +0 -396
  651. package/dist/node.js.map +0 -1
  652. package/dist/openapi/collect.d.ts.map +0 -1
  653. package/dist/openapi/collect.js.map +0 -1
  654. package/dist/openapi/docs-page.d.ts.map +0 -1
  655. package/dist/openapi/docs-page.js.map +0 -1
  656. package/dist/openapi/document.d.ts.map +0 -1
  657. package/dist/openapi/document.js.map +0 -1
  658. package/dist/openapi/json-schema-slot.d.ts +0 -12
  659. package/dist/openapi/json-schema-slot.d.ts.map +0 -1
  660. package/dist/openapi/json-schema-slot.js +0 -38
  661. package/dist/openapi/json-schema-slot.js.map +0 -1
  662. package/dist/openapi/register.d.ts.map +0 -1
  663. package/dist/openapi/register.js.map +0 -1
  664. package/dist/openapi/scalar.d.ts.map +0 -1
  665. package/dist/openapi/scalar.js.map +0 -1
  666. package/dist/openapi/serve.d.ts.map +0 -1
  667. package/dist/openapi/serve.js.map +0 -1
  668. package/dist/openapi/spec-factory.d.ts +0 -65
  669. package/dist/openapi/spec-factory.d.ts.map +0 -1
  670. package/dist/openapi/spec-factory.js +0 -52
  671. package/dist/openapi/spec-factory.js.map +0 -1
  672. package/dist/openapi/spec.d.ts +0 -29
  673. package/dist/openapi/spec.d.ts.map +0 -1
  674. package/dist/openapi/spec.js +0 -50
  675. package/dist/openapi/spec.js.map +0 -1
  676. package/dist/openapi/swagger.d.ts.map +0 -1
  677. package/dist/openapi/swagger.js.map +0 -1
  678. package/dist/pattern.d.ts +0 -71
  679. package/dist/pattern.d.ts.map +0 -1
  680. package/dist/pattern.js +0 -239
  681. package/dist/pattern.js.map +0 -1
  682. package/dist/peer.d.ts +0 -17
  683. package/dist/peer.d.ts.map +0 -1
  684. package/dist/peer.js +0 -50
  685. package/dist/peer.js.map +0 -1
  686. package/dist/plugin.d.ts +0 -228
  687. package/dist/plugin.d.ts.map +0 -1
  688. package/dist/plugin.js +0 -666
  689. package/dist/plugin.js.map +0 -1
  690. package/dist/powered-by.d.ts +0 -7
  691. package/dist/powered-by.d.ts.map +0 -1
  692. package/dist/powered-by.js +0 -11
  693. package/dist/powered-by.js.map +0 -1
  694. package/dist/pretty-json.d.ts +0 -10
  695. package/dist/pretty-json.d.ts.map +0 -1
  696. package/dist/pretty-json.js +0 -47
  697. package/dist/pretty-json.js.map +0 -1
  698. package/dist/producer-stream.d.ts +0 -47
  699. package/dist/producer-stream.d.ts.map +0 -1
  700. package/dist/producer-stream.js +0 -267
  701. package/dist/producer-stream.js.map +0 -1
  702. package/dist/proxy.d.ts +0 -90
  703. package/dist/proxy.d.ts.map +0 -1
  704. package/dist/proxy.js +0 -274
  705. package/dist/proxy.js.map +0 -1
  706. package/dist/python-type-emitter.d.ts +0 -24
  707. package/dist/python-type-emitter.d.ts.map +0 -1
  708. package/dist/python-type-emitter.js +0 -157
  709. package/dist/python-type-emitter.js.map +0 -1
  710. package/dist/realtime/bus.d.ts.map +0 -1
  711. package/dist/realtime/bus.js.map +0 -1
  712. package/dist/realtime/register.d.ts +0 -3
  713. package/dist/realtime/register.d.ts.map +0 -1
  714. package/dist/realtime/register.js +0 -10
  715. package/dist/realtime/register.js.map +0 -1
  716. package/dist/realtime/route.d.ts.map +0 -1
  717. package/dist/realtime/route.js.map +0 -1
  718. package/dist/realtime/server.d.ts.map +0 -1
  719. package/dist/realtime/server.js.map +0 -1
  720. package/dist/request-id.d.ts +0 -19
  721. package/dist/request-id.d.ts.map +0 -1
  722. package/dist/request-id.js +0 -16
  723. package/dist/request-id.js.map +0 -1
  724. package/dist/request-limits.d.ts +0 -3
  725. package/dist/request-limits.d.ts.map +0 -1
  726. package/dist/request-limits.js +0 -3
  727. package/dist/request-limits.js.map +0 -1
  728. package/dist/request-path.d.ts +0 -33
  729. package/dist/request-path.d.ts.map +0 -1
  730. package/dist/request-path.js +0 -178
  731. package/dist/request-path.js.map +0 -1
  732. package/dist/request-to-curl.d.ts +0 -15
  733. package/dist/request-to-curl.d.ts.map +0 -1
  734. package/dist/request-to-curl.js +0 -48
  735. package/dist/request-to-curl.js.map +0 -1
  736. package/dist/response.d.ts +0 -86
  737. package/dist/response.d.ts.map +0 -1
  738. package/dist/response.js +0 -313
  739. package/dist/response.js.map +0 -1
  740. package/dist/rust-type-emitter.d.ts +0 -44
  741. package/dist/rust-type-emitter.d.ts.map +0 -1
  742. package/dist/rust-type-emitter.js +0 -463
  743. package/dist/rust-type-emitter.js.map +0 -1
  744. package/dist/secure-headers.d.ts +0 -16
  745. package/dist/secure-headers.d.ts.map +0 -1
  746. package/dist/secure-headers.js +0 -53
  747. package/dist/secure-headers.js.map +0 -1
  748. package/dist/serve-register.d.ts +0 -6
  749. package/dist/serve-register.d.ts.map +0 -1
  750. package/dist/serve-register.js +0 -9
  751. package/dist/serve-register.js.map +0 -1
  752. package/dist/serve-slot.d.ts +0 -9
  753. package/dist/serve-slot.d.ts.map +0 -1
  754. package/dist/serve-slot.js +0 -52
  755. package/dist/serve-slot.js.map +0 -1
  756. package/dist/serve.d.ts +0 -38
  757. package/dist/serve.d.ts.map +0 -1
  758. package/dist/serve.js +0 -157
  759. package/dist/serve.js.map +0 -1
  760. package/dist/server-timing.d.ts +0 -9
  761. package/dist/server-timing.d.ts.map +0 -1
  762. package/dist/server-timing.js +0 -51
  763. package/dist/server-timing.js.map +0 -1
  764. package/dist/static.d.ts +0 -21
  765. package/dist/static.d.ts.map +0 -1
  766. package/dist/static.js +0 -102
  767. package/dist/static.js.map +0 -1
  768. package/dist/telemetry/otel.d.ts.map +0 -1
  769. package/dist/telemetry/otel.js.map +0 -1
  770. package/dist/testing.d.ts +0 -36
  771. package/dist/testing.d.ts.map +0 -1
  772. package/dist/testing.js +0 -124
  773. package/dist/testing.js.map +0 -1
  774. package/dist/timeout.d.ts +0 -13
  775. package/dist/timeout.d.ts.map +0 -1
  776. package/dist/timeout.js +0 -36
  777. package/dist/timeout.js.map +0 -1
  778. package/dist/tree.d.ts +0 -197
  779. package/dist/tree.d.ts.map +0 -1
  780. package/dist/tree.js +0 -437
  781. package/dist/tree.js.map +0 -1
  782. package/dist/trust.d.ts +0 -21
  783. package/dist/trust.d.ts.map +0 -1
  784. package/dist/trust.js +0 -100
  785. package/dist/trust.js.map +0 -1
  786. package/dist/ts-type-emitter.d.ts +0 -8
  787. package/dist/ts-type-emitter.d.ts.map +0 -1
  788. package/dist/ts-type-emitter.js +0 -150
  789. package/dist/ts-type-emitter.js.map +0 -1
  790. package/dist/type-emitter.d.ts +0 -36
  791. package/dist/type-emitter.d.ts.map +0 -1
  792. package/dist/type-emitter.js +0 -729
  793. package/dist/type-emitter.js.map +0 -1
  794. package/dist/type-extractor.d.ts +0 -43
  795. package/dist/type-extractor.d.ts.map +0 -1
  796. package/dist/type-extractor.js +0 -819
  797. package/dist/type-extractor.js.map +0 -1
  798. package/dist/types.d.ts +0 -467
  799. package/dist/types.d.ts.map +0 -1
  800. package/dist/types.js +0 -96
  801. package/dist/types.js.map +0 -1
  802. package/dist/validation.d.ts +0 -31
  803. package/dist/validation.d.ts.map +0 -1
  804. package/dist/validation.js +0 -335
  805. package/dist/validation.js.map +0 -1
  806. package/dist/with-headers.d.ts +0 -15
  807. package/dist/with-headers.d.ts.map +0 -1
  808. package/dist/with-headers.js +0 -45
  809. package/dist/with-headers.js.map +0 -1
  810. package/dist/ws/bun.d.ts.map +0 -1
  811. package/dist/ws/bun.js.map +0 -1
  812. package/dist/ws/cloudflare.d.ts.map +0 -1
  813. package/dist/ws/cloudflare.js.map +0 -1
  814. package/dist/ws/deno.d.ts +0 -13
  815. package/dist/ws/deno.d.ts.map +0 -1
  816. package/dist/ws/deno.js +0 -133
  817. package/dist/ws/deno.js.map +0 -1
  818. package/dist/ws/node.d.ts.map +0 -1
  819. package/dist/ws/node.js.map +0 -1
  820. package/dist/ws/session.d.ts.map +0 -1
  821. package/dist/ws/session.js.map +0 -1
  822. package/dist/ws/shared.d.ts.map +0 -1
  823. package/dist/ws/shared.js.map +0 -1
  824. package/dist/ws-origin.d.ts +0 -20
  825. package/dist/ws-origin.d.ts.map +0 -1
  826. package/dist/ws-origin.js +0 -41
  827. package/dist/ws-origin.js.map +0 -1
  828. package/dist/yaml.d.ts +0 -18
  829. package/dist/yaml.d.ts.map +0 -1
  830. package/dist/yaml.js +0 -101
  831. package/dist/yaml.js.map +0 -1
  832. package/docs/api-ref/go.md +0 -399
  833. package/docs/api-ref/python.md +0 -399
  834. package/docs/api-ref/rust.md +0 -399
  835. package/docs/api-ref/typescript.md +0 -399
  836. package/docs/invalidate-spec.md +0 -333
  837. package/docs/meta-spec.md +0 -555
  838. package/docs/packaging.md +0 -104
  839. package/docs/regression-matrix/README.md +0 -32
  840. package/docs/regression-matrix/review.md +0 -44
  841. package/docs/regression-matrix/ws1-3.md +0 -97
  842. package/docs/regression-matrix/ws4-8.md +0 -107
  843. package/docs/regression-matrix/ws9-12.md +0 -266
  844. package/docs/sdk.md +0 -798
  845. package/src/accepts.ts +0 -136
  846. package/src/body-kind.ts +0 -67
  847. package/src/body-limit.ts +0 -152
  848. package/src/build/index.ts +0 -217
  849. package/src/cli-args.ts +0 -123
  850. package/src/cli-go/auth.go +0 -26
  851. package/src/cli-go/config.go +0 -192
  852. package/src/cli-go/errors.go +0 -75
  853. package/src/cli-go/multipart.go +0 -79
  854. package/src/cli-go/output.go +0 -163
  855. package/src/cli-go/root.go +0 -30
  856. package/src/cli-go/stream.go +0 -88
  857. package/src/cli-go/version.go +0 -5
  858. package/src/cli.ts +0 -209
  859. package/src/client/defaults.ts +0 -47
  860. package/src/client/error.ts +0 -82
  861. package/src/client/http.ts +0 -737
  862. package/src/client/index.ts +0 -157
  863. package/src/client/path.ts +0 -169
  864. package/src/client/redirect-policy.ts +0 -19
  865. package/src/client/sdk.ts +0 -351
  866. package/src/client/sse.ts +0 -128
  867. package/src/client/types.ts +0 -206
  868. package/src/client/ws.ts +0 -149
  869. package/src/client-go/errors.go +0 -236
  870. package/src/client-go/export.go +0 -44
  871. package/src/client-go/invalidation.go +0 -371
  872. package/src/client-go/nullable.go +0 -62
  873. package/src/client-go/realtime.go +0 -354
  874. package/src/client-go/result.go +0 -20
  875. package/src/client-go/runtime.go +0 -975
  876. package/src/client-go/sse.go +0 -159
  877. package/src/client-go/transport.go +0 -495
  878. package/src/client-go/ws.go +0 -128
  879. package/src/client-info.ts +0 -79
  880. package/src/client-mcp/README.md +0 -10
  881. package/src/client-mcp/server.ts +0 -221
  882. package/src/client-mcp/types.ts +0 -19
  883. package/src/client-python/_errors.py +0 -115
  884. package/src/client-python/_invalidation.py +0 -494
  885. package/src/client-python/_realtime.py +0 -179
  886. package/src/client-python/_runtime.py +0 -860
  887. package/src/client-python/_sse.py +0 -155
  888. package/src/client-python/_transport.py +0 -366
  889. package/src/client-python/_ws.py +0 -159
  890. package/src/client-python/py.typed +0 -0
  891. package/src/client-rust/errors.rs +0 -220
  892. package/src/client-rust/invalidation.rs +0 -412
  893. package/src/client-rust/invalidation_sync.rs +0 -93
  894. package/src/client-rust/nullable.rs +0 -17
  895. package/src/client-rust/realtime.rs +0 -702
  896. package/src/client-rust/result.rs +0 -22
  897. package/src/client-rust/runtime.rs +0 -980
  898. package/src/client-rust/runtime_sync.rs +0 -484
  899. package/src/client-rust/sse.rs +0 -188
  900. package/src/client-rust/ws.rs +0 -167
  901. package/src/codegen-go-cli.ts +0 -1066
  902. package/src/codegen-go.ts +0 -970
  903. package/src/codegen-hash.ts +0 -8
  904. package/src/codegen-ir.ts +0 -812
  905. package/src/codegen-lang.ts +0 -517
  906. package/src/codegen-load.ts +0 -150
  907. package/src/codegen-loaders.ts +0 -50
  908. package/src/codegen-mcp.ts +0 -445
  909. package/src/codegen-python.ts +0 -916
  910. package/src/codegen-route-tree-intern.ts +0 -198
  911. package/src/codegen-rust.ts +0 -1402
  912. package/src/codegen-sanitize.ts +0 -57
  913. package/src/codegen-schema-naming.ts +0 -165
  914. package/src/codegen-sdk-model.ts +0 -228
  915. package/src/codegen.ts +0 -5089
  916. package/src/context.ts +0 -325
  917. package/src/cookie-sign.ts +0 -119
  918. package/src/cookie.ts +0 -143
  919. package/src/cors.ts +0 -95
  920. package/src/crypto.ts +0 -38
  921. package/src/csrf.ts +0 -86
  922. package/src/curl-logger.ts +0 -258
  923. package/src/detect-runtime.ts +0 -17
  924. package/src/dict.ts +0 -12
  925. package/src/error.ts +0 -55
  926. package/src/errors.ts +0 -85
  927. package/src/etag.ts +0 -97
  928. package/src/feature-detect.ts +0 -147
  929. package/src/feature-load.ts +0 -23
  930. package/src/feature-slots.ts +0 -70
  931. package/src/fetch-request.ts +0 -13
  932. package/src/gen-process.ts +0 -42
  933. package/src/gen-write.ts +0 -127
  934. package/src/glob.ts +0 -109
  935. package/src/go-type-emitter.ts +0 -660
  936. package/src/honey-response.ts +0 -379
  937. package/src/i18n-slot.ts +0 -30
  938. package/src/i18n.ts +0 -300
  939. package/src/index.ts +0 -3829
  940. package/src/init.ts +0 -161
  941. package/src/input.ts +0 -8
  942. package/src/invalidate-check.ts +0 -205
  943. package/src/invoke-user.ts +0 -95
  944. package/src/ip-restrict.ts +0 -79
  945. package/src/ip.ts +0 -194
  946. package/src/logger.ts +0 -178
  947. package/src/media-type.ts +0 -104
  948. package/src/meta-spec-merge.ts +0 -80
  949. package/src/meta-spec.ts +0 -718
  950. package/src/middleware.ts +0 -331
  951. package/src/node-request.ts +0 -431
  952. package/src/node.ts +0 -454
  953. package/src/openapi/collect.ts +0 -50
  954. package/src/openapi/docs-page.ts +0 -89
  955. package/src/openapi/document.ts +0 -902
  956. package/src/openapi/json-schema-slot.ts +0 -53
  957. package/src/openapi/register.ts +0 -23
  958. package/src/openapi/scalar.ts +0 -34
  959. package/src/openapi/serve.ts +0 -39
  960. package/src/openapi/spec-factory.ts +0 -100
  961. package/src/openapi/spec.ts +0 -74
  962. package/src/openapi/swagger.ts +0 -35
  963. package/src/pattern.ts +0 -245
  964. package/src/peer.ts +0 -53
  965. package/src/plugin.ts +0 -864
  966. package/src/powered-by.ts +0 -18
  967. package/src/pretty-json.ts +0 -56
  968. package/src/producer-stream.ts +0 -296
  969. package/src/proxy.ts +0 -370
  970. package/src/python-type-emitter.ts +0 -181
  971. package/src/realtime/bus.ts +0 -140
  972. package/src/realtime/register.ts +0 -13
  973. package/src/realtime/route.ts +0 -153
  974. package/src/realtime/server.ts +0 -298
  975. package/src/request-id.ts +0 -32
  976. package/src/request-limits.ts +0 -2
  977. package/src/request-path.ts +0 -165
  978. package/src/request-to-curl.ts +0 -52
  979. package/src/response.ts +0 -411
  980. package/src/rust-type-emitter.ts +0 -548
  981. package/src/secure-headers.ts +0 -74
  982. package/src/serve-register.ts +0 -12
  983. package/src/serve-slot.ts +0 -58
  984. package/src/serve.ts +0 -220
  985. package/src/server-timing.ts +0 -71
  986. package/src/static.ts +0 -112
  987. package/src/telemetry/otel.ts +0 -156
  988. package/src/testing.ts +0 -167
  989. package/src/timeout.ts +0 -45
  990. package/src/tree.ts +0 -558
  991. package/src/trust.ts +0 -117
  992. package/src/ts-type-emitter.ts +0 -168
  993. package/src/type-emitter.ts +0 -760
  994. package/src/type-extractor.ts +0 -855
  995. package/src/types.ts +0 -756
  996. package/src/validation.ts +0 -413
  997. package/src/with-headers.ts +0 -45
  998. package/src/ws/bun.ts +0 -120
  999. package/src/ws/cloudflare.ts +0 -192
  1000. package/src/ws/deno.ts +0 -188
  1001. package/src/ws/node.ts +0 -240
  1002. package/src/ws/session.ts +0 -73
  1003. package/src/ws/shared.ts +0 -140
  1004. package/src/ws-origin.ts +0 -53
  1005. package/src/yaml.ts +0 -103
@@ -0,0 +1,105 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ /**
10
+ * The build tooling's loaders: user modules (the Vite config, the app) through jiti on Node, so `honey generate`
11
+ * reads a TypeScript config on plain Node (H70b), and through Bun's own import on Bun; and Effect's JSON Schema converter, when effect is
12
+ * installed, for the documents core generates (core never imports a validator, F2).
13
+ */
14
+ import { existsSync } from "node:fs";
15
+ import { createRequire } from "node:module";
16
+ import { join, resolve } from "node:path";
17
+ import { pathToFileURL } from "node:url";
18
+ /**
19
+ * A loader for one generation: each path evaluated at most once, so the app never runs twice. Through jiti on Node;
20
+ * on Bun (`registry` is its module registry), Bun's own import: jiti there re-evaluates a module that threw through
21
+ * its Babel, whose stack hook then breaks Bun (bit 20 k-fix).
22
+ */
23
+ export async function createModuleLoader(options, registry = bunRegistry()) {
24
+ const evaluate = registry === undefined ? await jitiEvaluator(options) : bunEvaluator(registry, options);
25
+ const loaded = new Map();
26
+ return (path) => {
27
+ const abs = resolve(path);
28
+ let mod = loaded.get(abs);
29
+ if (!mod) {
30
+ mod = evaluate(abs);
31
+ loaded.set(abs, mod);
32
+ }
33
+ return mod;
34
+ };
35
+ }
36
+ function bunRegistry() {
37
+ return typeof globalThis.Bun === "undefined" ? undefined : createRequire(import.meta.url).cache;
38
+ }
39
+ async function jitiEvaluator(options) {
40
+ const { createJiti } = await import("jiti");
41
+ const jiti = createJiti(options.from, { fsCache: false, interopDefault: true, moduleCache: !options.fresh });
42
+ return (path) => jiti.import(path);
43
+ }
44
+ function bunEvaluator(registry, options) {
45
+ /* Bun keeps a module for the process: evicted, the next import evaluates it anew. Every module outside
46
+ * node_modules goes, what a user may have edited or a generation written (a gateway's tree) */
47
+ const evicted = options.fresh ? Object.keys(registry).filter((key) => !/[\\/]node_modules[\\/]/.test(key)) : [];
48
+ for (const key of evicted)
49
+ delete registry[key];
50
+ /* a registry keyed otherwise than this reads (a Bun upgrade) leaves a reload the stale graph: said, not served */
51
+ if (options.reload === true && evicted.length === 0)
52
+ throw new Error("Bun's module registry held none of the project's modules to evict: a reload would read them stale");
53
+ return (path) => import(__rewriteRelativeImportExtension(pathToFileURL(path).href));
54
+ }
55
+ export const VITE_CONFIG_FILES = [
56
+ "vite.config.ts",
57
+ "vite.config.mts",
58
+ "vite.config.cts",
59
+ "vite.config.js",
60
+ "vite.config.mjs",
61
+ "vite.config.cjs",
62
+ ];
63
+ /** The Vite config file in `cwd`, by Vite's own order; undefined when there is none. */
64
+ export function findViteConfig(cwd) {
65
+ return VITE_CONFIG_FILES.map((name) => join(cwd, name)).find((path) => existsSync(path));
66
+ }
67
+ /**
68
+ * The config each `honey()` plugin in a Vite config file carries, in plugin order: a function-form config is called
69
+ * with `env`, and nested and promised plugin arrays flatten as Vite flattens them. Read off the plugin object (its
70
+ * name `honey`, its `api.honeyConfig`), so it holds across module instances and runtimes.
71
+ */
72
+ export async function loadPluginConfigs(configPath, load, env) {
73
+ const mod = await load(configPath);
74
+ let config = "default" in mod ? mod.default : mod;
75
+ if (typeof config === "function") {
76
+ config = config({ ...env, isPreview: false, isSsrBuild: false });
77
+ }
78
+ const plugins = await flattened((await config));
79
+ return plugins.flatMap((plugin) => {
80
+ const p = plugin;
81
+ return p?.name === "honey" && p.api?.honeyConfig !== undefined ? [p.api.honeyConfig] : [];
82
+ });
83
+ }
84
+ async function flattened(config) {
85
+ const flat = async (value) => {
86
+ const resolved = await value;
87
+ if (Array.isArray(resolved))
88
+ return (await Promise.all(resolved.map(flat))).flat();
89
+ return resolved ? [resolved] : [];
90
+ };
91
+ return flat(config?.plugins);
92
+ }
93
+ /** Effect's `JSONSchema.make` for core's converters, when effect is installed; else undefined. */
94
+ export async function effectConverter(specifier = ["eff", "ect"].join("")) {
95
+ try {
96
+ /* an opaque specifier: a literal one is folded into a Worker bundle, pulling the optional dependency in */
97
+ const effect = (await import(__rewriteRelativeImportExtension(specifier)));
98
+ const make = effect.JSONSchema?.make;
99
+ return typeof make === "function" ? make : undefined;
100
+ }
101
+ catch {
102
+ /* effect is not installed: core then documents each Effect schema unconstrained and reports it */
103
+ return undefined;
104
+ }
105
+ }
@@ -0,0 +1,52 @@
1
+ import { type HoneyVitePluginConfig } from "./config.ts";
2
+ export type { HoneyCodegenConfig, HoneyOpenApiOutputConfig, HoneyVitePluginConfig } from "./config.ts";
3
+ type ModuleGraph = {
4
+ getModuleById(id: string): unknown;
5
+ };
6
+ type ResolvedViteConfig = {
7
+ command?: "build" | "serve";
8
+ configFile?: string;
9
+ mode?: string;
10
+ plugins?: readonly unknown[];
11
+ root: string;
12
+ };
13
+ type HotUpdate = {
14
+ file: string;
15
+ modules: unknown[];
16
+ server: {
17
+ moduleGraph: ModuleGraph;
18
+ };
19
+ timestamp?: number;
20
+ };
21
+ /** `honey generate <args>` in a child (core's own bin on this runtime); resolves when it exits 0. */
22
+ export declare function runGenerate(args: readonly string[], options: {
23
+ cwd: string;
24
+ env: NodeJS.ProcessEnv;
25
+ }): Promise<void>;
26
+ /** `generate` serialized: one run at a time, and any call during a run joins the one run queued behind it. */
27
+ export declare function serialized(generate: () => Promise<unknown>): () => Promise<unknown>;
28
+ /** How many recent saves a dev server remembers: Vite reports a save once per environment, back to back. */
29
+ export declare const SAVES_REMEMBERED = 64;
30
+ /** `run` once per key, the last `limit` keys remembered: a call with a remembered key joins its run. */
31
+ export declare function oncePerKey(run: () => Promise<unknown>, limit: number): (key: string) => Promise<unknown>;
32
+ /** The route tree module as JavaScript: a dev server serves a virtual module untransformed. */
33
+ export declare function toJavaScript(code: string, vite?: () => Promise<unknown>): Promise<{
34
+ code: string;
35
+ moduleType: string;
36
+ }>;
37
+ export declare function honey(config: HoneyVitePluginConfig): {
38
+ /** read by `honey generate` to find this plugin's config in a loaded Vite config */
39
+ api: {
40
+ honeyConfig: HoneyVitePluginConfig;
41
+ };
42
+ buildStart(): Promise<void>;
43
+ configResolved(cfg: ResolvedViteConfig): void;
44
+ /** Regenerates on a watched save, then lets HMR go on with the virtual route tree added; once per save. */
45
+ hotUpdate(this: unknown, ctx: HotUpdate): Promise<unknown[] | undefined>;
46
+ load: (id: string) => Promise<{
47
+ code: string;
48
+ moduleType: string;
49
+ } | undefined>;
50
+ name: string;
51
+ resolveId(id: string): string | undefined;
52
+ }[];
@@ -0,0 +1,146 @@
1
+ /**
2
+ * `honey()`, the Vite plugin (`@lovrozagar/honey/plugin`, bit 19 h2): it writes the app's artifacts at build start
3
+ * and, in dev, again on each save a `watch` glob matches, one generation at a time with at most one more queued, and
4
+ * one per save across Vite's environments. With a config file, each generation runs in a `honey generate` child, so
5
+ * it sees edits to every module the app imports and nothing the app starts outlives it. `virtual:honey/routes`,
6
+ * `/manifest` and `/openapi` serve the same artifacts in memory. Its config rides on the plugin object
7
+ * (`api.honeyConfig`), where `honey generate` reads it.
8
+ */
9
+ import { spawn } from "node:child_process";
10
+ import { fileURLToPath } from "node:url";
11
+ import { generatedOutputs, isGeneratedOutput, resolveHoneyConfig, } from "./config.js";
12
+ import { generateAndWrite, inAppGraph, loadClients } from "./generate.js";
13
+ import { compileGlobs, WATCH_IGNORE_RE } from "./glob.js";
14
+ const VIRTUAL = { manifest: "virtual:honey/manifest", openApi: "virtual:honey/openapi", routes: "virtual:honey/routes" };
15
+ const RESOLVED = { manifest: `\0${VIRTUAL.manifest}`, openApi: `\0${VIRTUAL.openApi}`, routes: `\0${VIRTUAL.routes}` };
16
+ /** `honey generate <args>` in a child (core's own bin on this runtime); resolves when it exits 0. */
17
+ export function runGenerate(args, options) {
18
+ const bin = fileURLToPath(new URL("../../bin/honey.js", import.meta.url));
19
+ return new Promise((done, fail) => {
20
+ const child = spawn(process.execPath, [bin, "generate", ...args], {
21
+ cwd: options.cwd,
22
+ env: { ...process.env, ...options.env, HONEY_NO_BUN_HANDOFF: "1" },
23
+ stdio: ["ignore", "inherit", "inherit"],
24
+ });
25
+ child.on("error", fail);
26
+ child.on("exit", (code, signal) => code === 0 ? done() : fail(new Error(`honey generate failed (${signal ?? `exit ${code}`})`)));
27
+ });
28
+ }
29
+ /** `generate` serialized: one run at a time, and any call during a run joins the one run queued behind it. */
30
+ export function serialized(generate) {
31
+ let running;
32
+ let queued;
33
+ const regenerate = () => {
34
+ if (running === undefined) {
35
+ running = generate().finally(() => (running = undefined));
36
+ return running;
37
+ }
38
+ queued ??= running
39
+ /* the running generation's failure is its own caller's: the one queued behind it runs regardless */
40
+ .catch(() => undefined)
41
+ .then(() => {
42
+ queued = undefined;
43
+ return regenerate();
44
+ });
45
+ return queued;
46
+ };
47
+ return regenerate;
48
+ }
49
+ /** How many recent saves a dev server remembers: Vite reports a save once per environment, back to back. */
50
+ export const SAVES_REMEMBERED = 64;
51
+ /** `run` once per key, the last `limit` keys remembered: a call with a remembered key joins its run. */
52
+ export function oncePerKey(run, limit) {
53
+ const seen = new Map();
54
+ return (key) => {
55
+ const known = seen.get(key);
56
+ if (known !== undefined)
57
+ return known;
58
+ const started = run();
59
+ seen.set(key, started);
60
+ if (seen.size > limit)
61
+ seen.delete(seen.keys().next().value);
62
+ return started;
63
+ };
64
+ }
65
+ /** The route tree module as JavaScript: a dev server serves a virtual module untransformed. */
66
+ export async function toJavaScript(code, vite = () => import("vite")) {
67
+ /* no Vite to transform with: the tree is served as TypeScript, which the bundler strips */
68
+ const loaded = (await vite().catch(() => ({})));
69
+ if (loaded.transformWithOxc === undefined)
70
+ return { code, moduleType: "ts" };
71
+ return { code: (await loaded.transformWithOxc(code, "routes.gen.ts", { lang: "ts" })).code, moduleType: "js" };
72
+ }
73
+ /** A virtual module's code, from a fresh load of the app (or a gateway's merge entry); none for any other id. */
74
+ async function virtualModule(id, config, root) {
75
+ const kind = Object.keys(RESOLVED).find((key) => RESOLVED[key] === id);
76
+ if (kind === undefined || (kind === "manifest" && config.codegen.manifest === false))
77
+ return undefined;
78
+ if (kind === "openApi" && config.codegen.openApi.length === 0)
79
+ return undefined;
80
+ const code = await (await inAppGraph(root)).virtualCode(kind, config, { codegen: () => loadClients(), root });
81
+ return kind === "routes" ? toJavaScript(code) : { code, moduleType: "js" };
82
+ }
83
+ /** Whether `plugin` is a `honey()` plugin, as `honey generate` finds one. */
84
+ const isHoneyPlugin = (plugin) => plugin?.name === "honey" &&
85
+ plugin.api?.honeyConfig !== undefined;
86
+ export function honey(config) {
87
+ const resolved = resolveHoneyConfig(config);
88
+ const matchesWatch = compileGlobs(resolved.watch);
89
+ const at = { command: "build", configFile: undefined, index: -1 };
90
+ let [root, mode, outputs] = [process.cwd(), "production", generatedOutputs(resolved, process.cwd())];
91
+ let starting;
92
+ const regenerate = serialized(async () => {
93
+ if (at.configFile === undefined || at.index < 0)
94
+ return generateAndWrite(resolved, root);
95
+ /* a child: a fresh module graph, and whatever the app starts dies with it */
96
+ return runGenerate(["--config", at.configFile, "--plugin", String(at.index)], {
97
+ cwd: root,
98
+ env: { HONEY_VITE_COMMAND: at.command, HONEY_VITE_MODE: mode },
99
+ });
100
+ });
101
+ const perSave = oncePerKey(
102
+ /* reported on stderr: a failed generation must not stop the dev server's HMR */
103
+ () => regenerate().catch((error) => process.stderr.write(`honey: generation failed: ${error}\n`)), SAVES_REMEMBERED);
104
+ const plugin = {
105
+ /** read by `honey generate` to find this plugin's config in a loaded Vite config */
106
+ api: { honeyConfig: config },
107
+ /* Vite calls this once per environment, back to back: the second joins the first's generation */
108
+ async buildStart() {
109
+ starting ??= regenerate().finally(() => (starting = undefined));
110
+ await starting;
111
+ },
112
+ configResolved(cfg) {
113
+ Object.assign(at, { command: cfg.command ?? "build", configFile: cfg.configFile });
114
+ at.index = (cfg.plugins ?? []).filter(isHoneyPlugin).indexOf(plugin);
115
+ root = cfg.root;
116
+ mode = cfg.mode ?? (at.command === "serve" ? "development" : "production");
117
+ outputs = generatedOutputs(resolved, root);
118
+ },
119
+ /** Regenerates on a watched save, then lets HMR go on with the virtual route tree added; once per save. */
120
+ async hotUpdate(ctx) {
121
+ if (WATCH_IGNORE_RE.test(ctx.file) || isGeneratedOutput(ctx.file, outputs))
122
+ return undefined;
123
+ if (resolved.watch.length === 0 || !matchesWatch(ctx.file, root))
124
+ return undefined;
125
+ await perSave(`${ctx.file}\0${ctx.timestamp ?? Date.now()}`);
126
+ /* Vite passes the environment as `this`; its graph, else the server's */
127
+ const environment = this?.environment;
128
+ const routes = (environment?.moduleGraph ?? ctx.server.moduleGraph).getModuleById(RESOLVED.routes);
129
+ return routes === undefined || routes === null || ctx.modules.includes(routes)
130
+ ? undefined
131
+ : [...ctx.modules, routes];
132
+ },
133
+ load: (id) => virtualModule(id, resolved, root),
134
+ name: "honey",
135
+ resolveId(id) {
136
+ if (id === VIRTUAL.routes)
137
+ return RESOLVED.routes;
138
+ if (id === VIRTUAL.manifest && resolved.codegen.manifest !== false)
139
+ return RESOLVED.manifest;
140
+ if (id === VIRTUAL.openApi && resolved.codegen.openApi.length > 0)
141
+ return RESOLVED.openApi;
142
+ return undefined;
143
+ },
144
+ };
145
+ return [plugin];
146
+ }
@@ -0,0 +1,21 @@
1
+ import { type Honey } from "../routing/app.ts";
2
+ import type { RouteTree } from "../routing/tree.ts";
3
+ import type { ResolvedHoneyConfig } from "./config.ts";
4
+ export type App = Honey<unknown>;
5
+ /** The app a generation documents, and the module and export its types are read from (none, no types). */
6
+ export type Documented = {
7
+ app: App;
8
+ entry: string;
9
+ exportName: string | undefined;
10
+ };
11
+ /** The tree a generation writes; whether the documented app loads it (so it is written first); that app, on demand. */
12
+ export type Source = {
13
+ documented: () => Promise<Documented>;
14
+ loadsTree: boolean;
15
+ tree: RouteTree;
16
+ };
17
+ /**
18
+ * The app `config` names, or a gateway's (`first` lets a gateway's first run bootstrap); each module imported once.
19
+ * Its tree holds no output key `.output()`'s types refuse: a generated tree is checked here, never where it is served.
20
+ */
21
+ export declare function sourceOf(config: ResolvedHoneyConfig, root: string, first?: boolean): Promise<Source>;
@@ -0,0 +1,100 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ /**
10
+ * What a generation reads (bit 19 h2): the tree it writes, and the app its documents, manifest and types come from,
11
+ * resolved only once that tree is current. An app is its module's `app` export, else its default. A gateway
12
+ * (`codegen.mergeTree`, ruled at h2, v0's shape) writes gatewayTree(the merge entry's `app` export, else config.app,
13
+ * merged): its services' routes plus its own. Its documents come from config.app, imported over the current tree
14
+ * and given its services' schemas, so its settings and errors are its own; with no config.app, from an app booted on
15
+ * that tree. A first run, whose config.app imports a tree not yet written, is given the merged tree first. Runs inside
16
+ * the app's module graph, as artifacts.ts does.
17
+ */
18
+ import { existsSync } from "node:fs";
19
+ import { resolve } from "node:path";
20
+ import { assertTreeOutputKeys } from "../openapi/output-keys.js";
21
+ import { honey } from "../routing/app.js";
22
+ import { gatewayTree, overlaySchemas } from "../routing/gateway-tree.js";
23
+ const isApp = (value) => typeof value?.fetch === "function";
24
+ const isTree = (value) => typeof value?.root === "object" && typeof value?.routes === "object";
25
+ /** `run()`, an app's stale-tree failure named for what it is: the app loads the tree this generation writes. */
26
+ async function unlessStale(run, config) {
27
+ try {
28
+ return await run();
29
+ }
30
+ catch (error) {
31
+ if (!/Run `honey generate`/.test(String(error)))
32
+ throw error;
33
+ const { mergeTree, tree } = config.codegen;
34
+ const fix = mergeTree === undefined
35
+ ? "generate from an entry that builds the app without it, or set codegen.mergeTree for a gateway"
36
+ : `export the gateway's app, built without its tree, from ${mergeTree} as app`;
37
+ throw new Error(`${config.app} loads the route tree generation writes (${tree || "its routes.gen.ts"}), and that tree is stale: ${fix}`, { cause: error });
38
+ }
39
+ }
40
+ /** The app `config.app` names. */
41
+ async function appOf(config, root) {
42
+ const entry = resolve(root, config.app);
43
+ const mod = (await unlessStale(() => import(__rewriteRelativeImportExtension(entry)), config));
44
+ const exportName = ["app", "default"].find((name) => isApp(mod[name]));
45
+ if (exportName === undefined)
46
+ throw new Error(`Expected a honey app as the app or default export of ${entry}`);
47
+ return { app: mod[exportName], entry, exportName };
48
+ }
49
+ /** A gateway's source, as the header says. */
50
+ async function gatewayOf(config, root, first) {
51
+ const entry = resolve(root, config.codegen.mergeTree);
52
+ const mod = (await import(__rewriteRelativeImportExtension(entry)));
53
+ const merged = [mod.tree, mod.routeTree, mod.default].find(isTree);
54
+ if (merged === undefined)
55
+ throw new Error(`Expected a route tree as the tree or default export of ${entry}`);
56
+ const own = isApp(mod.app) ? { app: mod.app, entry, exportName: "app" } : undefined;
57
+ if (config.app === undefined) {
58
+ const tree = own === undefined ? merged : await unlessStale(() => gatewayTree(own.app, merged), config);
59
+ const app = honey().routeTree(tree);
60
+ overlaySchemas(app, merged);
61
+ return { documented: async () => ({ app, entry, exportName: own?.exportName }), loadsTree: false, tree };
62
+ }
63
+ let served;
64
+ if (own === undefined) {
65
+ const path = config.codegen.tree === false ? undefined : resolve(root, config.codegen.tree);
66
+ const bootstrap = first && path !== undefined && !existsSync(path);
67
+ served = await appOf(config, root).catch((error) => {
68
+ if (bootstrap)
69
+ return undefined;
70
+ throw error;
71
+ });
72
+ if (served === undefined)
73
+ return { documented: () => appOf(config, root), loadsTree: true, tree: merged };
74
+ }
75
+ const builder = (own ?? served);
76
+ const tree = await unlessStale(() => gatewayTree(builder.app, merged), config);
77
+ const documented = async () => {
78
+ const app = served ?? (await appOf(config, root));
79
+ overlaySchemas(app.app, merged);
80
+ return app;
81
+ };
82
+ return { documented, loadsTree: true, tree };
83
+ }
84
+ /** The app `config` names: its snapshot is the tree written. */
85
+ async function appSource(config, root) {
86
+ if (config.app === undefined)
87
+ throw new Error("No app configured: set app, or codegen.mergeTree for a gateway");
88
+ const documented = await appOf(config, root);
89
+ const tree = await unlessStale(() => documented.app.toRouteTree(), config);
90
+ return { documented: async () => documented, loadsTree: false, tree };
91
+ }
92
+ /**
93
+ * The app `config` names, or a gateway's (`first` lets a gateway's first run bootstrap); each module imported once.
94
+ * Its tree holds no output key `.output()`'s types refuse: a generated tree is checked here, never where it is served.
95
+ */
96
+ export async function sourceOf(config, root, first = false) {
97
+ const source = config.codegen.mergeTree === undefined ? await appSource(config, root) : await gatewayOf(config, root, first);
98
+ assertTreeOutputKeys(source.tree);
99
+ return source;
100
+ }
@@ -0,0 +1,59 @@
1
+ export type BuildTarget = "bun" | "cloudflare" | "node";
2
+ export type HoneyBuildConfig = {
3
+ /** modules left out of the bundle beside node's builtins */
4
+ external?: string[];
5
+ minify?: boolean;
6
+ outDir?: string;
7
+ /** a node or bun server's port when PORT is unset; default 3000 */
8
+ port?: number;
9
+ target: BuildTarget;
10
+ };
11
+ /** The app module the entry imports and its export's name, `default` for the default export. */
12
+ export type BuildApp = {
13
+ entry: string;
14
+ export: string;
15
+ };
16
+ /** What the plugin asks of the build: the app entry resolved, and its module's export names. */
17
+ type EntryContext = {
18
+ resolve(source: string): Promise<{
19
+ id: string;
20
+ } | null>;
21
+ load(module: {
22
+ id: string;
23
+ }): Promise<{
24
+ exports?: readonly string[] | null;
25
+ }>;
26
+ };
27
+ /** The Vite plugin that builds `app` for `config.target`: `vite build` with it emits `<outDir>/index.js`. */
28
+ export declare function createBuildPlugin(config: HoneyBuildConfig, app: BuildApp): {
29
+ apply: "build";
30
+ config(): {
31
+ build: {
32
+ emptyOutDir: boolean;
33
+ minify: boolean;
34
+ outDir: string;
35
+ rolldownOptions: {
36
+ external: string[];
37
+ input: string;
38
+ output: {
39
+ entryFileNames: string;
40
+ };
41
+ };
42
+ ssr: boolean;
43
+ };
44
+ ssr: {
45
+ noExternal?: boolean | undefined;
46
+ target: "node" | "webworker";
47
+ };
48
+ };
49
+ load(this: EntryContext, id: string): Promise<{
50
+ code: string;
51
+ moduleType: "js";
52
+ }> | {
53
+ code: string;
54
+ moduleType: "js";
55
+ } | undefined;
56
+ name: string;
57
+ resolveId(id: string): string | undefined;
58
+ };
59
+ export {};
@@ -0,0 +1,107 @@
1
+ /**
2
+ * The build plugin (`@lovrozagar/honey/build`): bundles the app for node, bun or a Cloudflare Worker (H15)
3
+ * from a virtual entry that imports it and starts it the way that target runs an app. Nothing is detected or
4
+ * injected: v1 code-splits through plain dynamic import() (Q4, H23). Bit 21 h: a Worker's module also exports every
5
+ * other named export of the app's entry (a Durable Object class, a WorkerEntrypoint, a Workflow), since a Worker's
6
+ * bindings name classes its main module exports; its default stays honey's fetch. A value workerd takes as no
7
+ * entrypoint (a string, a number) is exported as an inert empty object, so it never stops the Worker.
8
+ */
9
+ import { builtinModules } from "node:module";
10
+ const VIRTUAL_ENTRY = "virtual:honey-build-entry";
11
+ const RESOLVED_ENTRY = `\0${VIRTUAL_ENTRY}`;
12
+ function importApp(app) {
13
+ if (app.export === "default")
14
+ return `import app from "./${app.entry}"`;
15
+ return `import { ${app.export} as app } from "./${app.entry}"`;
16
+ }
17
+ /** A server on every interface, as `serve(app)` starts one: the process's env, PORT before the configured port. */
18
+ function serverEntry(app, port) {
19
+ return [
20
+ 'import { serve } from "@lovrozagar/honey/serve"',
21
+ importApp(app),
22
+ "",
23
+ `await serve(app, { env: process.env, hostname: "0.0.0.0", port: Number(process.env.PORT ?? ${port}) })`,
24
+ ].join("\n");
25
+ }
26
+ /** A Worker: the app is its fetch, its entry's `named` exports its own, and there is nothing to listen on. */
27
+ function workerEntry(app, _port, named) {
28
+ /* an export name need not be an identifier (`export { x as "a-b" }`) */
29
+ const names = named.map((name) => (/^[A-Za-z_$][\w$]*$/.test(name) ? name : JSON.stringify(name)));
30
+ /*
31
+ * workerd loads a module only when its every named export is a function (a class among them) or an object: one
32
+ * string, number, boolean, null or undefined stops the Worker (`not of type 'function or ExportedHandler'`). Only
33
+ * the names are known here, so each value passes through as it is, or, being none of those, as an inert empty
34
+ * object: an entrypoint with no handler, which keeps an entry's `export const VERSION = "1"` from stopping it.
35
+ */
36
+ const passed = named.length === 0
37
+ ? []
38
+ : [
39
+ `import * as entry from "./${app.entry}"`,
40
+ 'const entrypoint = (value) => (typeof value === "function" || (typeof value === "object" && value !== null) ? value : {})',
41
+ ...named.map((name, at) => `const named${at} = entrypoint(entry[${JSON.stringify(name)}])`),
42
+ `export { ${names.map((name, at) => `named${at} as ${name}`).join(", ")} }`,
43
+ ];
44
+ return [
45
+ importApp(app),
46
+ ...passed,
47
+ "",
48
+ "export default {",
49
+ " fetch: (req, env, ctx) => app.fetch(req, env, ctx),",
50
+ "}",
51
+ ].join("\n");
52
+ }
53
+ /** The app entry's exports a Worker passes on: all but the app's own and `default`, which honey's fetch handler is. */
54
+ async function passedOn(context, app) {
55
+ const resolved = await context.resolve(`./${app.entry}`);
56
+ if (resolved === null)
57
+ throw new Error(`honey build: cannot resolve the app entry ./${app.entry}`);
58
+ const exports = (await context.load({ id: resolved.id })).exports ?? [];
59
+ if (app.export !== "default" && exports.includes("default"))
60
+ throw new Error(`honey build: ${app.entry} exports a default beside its app "${app.export}": a Worker's default export is ` +
61
+ "honey's fetch handler, so the entry's own default would be lost; drop it, or export the app as the default");
62
+ return exports.filter((name) => name !== "default" && name !== app.export);
63
+ }
64
+ const TARGETS = {
65
+ bun: { entry: serverEntry, named: false, noExternal: false, ssrTarget: "node" },
66
+ cloudflare: { entry: workerEntry, named: true, noExternal: true, ssrTarget: "webworker" },
67
+ node: { entry: serverEntry, named: false, noExternal: false, ssrTarget: "node" },
68
+ };
69
+ /** The Vite plugin that builds `app` for `config.target`: `vite build` with it emits `<outDir>/index.js`. */
70
+ export function createBuildPlugin(config, app) {
71
+ if (!Object.hasOwn(TARGETS, config.target)) {
72
+ throw new Error(`honey build: unknown target "${config.target}"; expected node, bun or cloudflare`);
73
+ }
74
+ const target = TARGETS[config.target];
75
+ return {
76
+ apply: "build",
77
+ config() {
78
+ return {
79
+ build: {
80
+ emptyOutDir: false,
81
+ minify: config.minify ?? true,
82
+ outDir: config.outDir ?? "./dist",
83
+ rolldownOptions: {
84
+ external: [...builtinModules, ...builtinModules.map((m) => `node:${m}`), ...(config.external ?? [])],
85
+ input: VIRTUAL_ENTRY,
86
+ output: { entryFileNames: "index.js" },
87
+ },
88
+ ssr: true,
89
+ },
90
+ /* node and bun install dependencies beside the bundle; inlining them would inline native addons too */
91
+ ssr: { ...(target.noExternal ? { noExternal: true } : {}), target: target.ssrTarget },
92
+ };
93
+ },
94
+ load(id) {
95
+ if (id !== RESOLVED_ENTRY)
96
+ return undefined;
97
+ const port = config.port ?? 3000;
98
+ const module = (named) => ({ code: target.entry(app, port, named), moduleType: "js" });
99
+ /* only a Worker passes exports on, which needs the build to read its entry */
100
+ return target.named ? passedOn(this, app).then(module) : module([]);
101
+ },
102
+ name: "honey:build",
103
+ resolveId(id) {
104
+ return id === VIRTUAL_ENTRY ? RESOLVED_ENTRY : undefined;
105
+ },
106
+ };
107
+ }