@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
@@ -1,819 +0,0 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
- import { dirname, join, relative, resolve, sep } from "node:path";
3
- import { canonical, expandOptional, joinPatterns, parsePattern } from "./pattern.js";
4
- import { quoteKey } from "./type-emitter.js";
5
- /**
6
- * The tsconfig that governs the entry: the nearest one walking up, but never past the
7
- * project root (the nearest directory with a package.json) — a stray tsconfig in a parent
8
- * directory or the home folder is not this project's.
9
- */
10
- function findTsConfig(fromPath) {
11
- let dir = dirname(resolve(fromPath));
12
- let prev = "";
13
- while (dir !== prev) {
14
- const p = resolve(dir, "tsconfig.json");
15
- if (existsSync(p))
16
- return p;
17
- if (existsSync(resolve(dir, "package.json")))
18
- return undefined;
19
- prev = dir;
20
- dir = dirname(dir);
21
- }
22
- return undefined;
23
- }
24
- /* ts-morph bundles a different TS version — structurally identical at runtime */
25
- function bridge(value) {
26
- return value;
27
- }
28
- /**
29
- * Load the entry and find the app export: `export const app = …`, any other exported
30
- * declaration of that name, or `export default honey()` for `exportName: "default"`.
31
- */
32
- async function loadEntry(options) {
33
- const { Project, ts: tsLib } = await import("ts-morph");
34
- const tsConfigFilePath = options.tsconfigPath ?? findTsConfig(options.entryPath);
35
- const project = new Project({ skipAddingFilesFromTsConfig: true, tsConfigFilePath });
36
- project.addSourceFilesAtPaths(options.entryPath);
37
- project.resolveSourceFileDependencies();
38
- const sourceFile = project.getSourceFileOrThrow(options.entryPath);
39
- const declarations = sourceFile.getExportedDeclarations().get(options.exportName);
40
- const decl = declarations?.[0] ?? sourceFile.getVariableDeclaration(options.exportName);
41
- if (!decl) {
42
- throw new Error(`Export "${options.exportName}" not found in ${options.entryPath}`);
43
- }
44
- const checker = bridge(project.getTypeChecker().compilerObject);
45
- const node = bridge(decl.compilerNode);
46
- const compiler = bridge(tsLib);
47
- /* `export default <expr>` declares an ExportAssignment; its type is the expression's */
48
- const target = compiler.isExportAssignment(node) ? node.expression : node;
49
- const appType = checker.getTypeAtLocation(target);
50
- return { appType, checker, compiler, node: target, project, sourceFile };
51
- }
52
- /**
53
- * Uses ts-morph to extract the middleware context type from a Honey app export.
54
- * Returns inline type strings so the gen file has zero imports from user code.
55
- */
56
- export async function extractBaseCtx(options) {
57
- const { appType, checker, compiler, node } = await loadEntry(options);
58
- const ser = new Serializer(checker, node, compiler);
59
- const typeOfProp = (name) => {
60
- const sym = appType.getProperty(name);
61
- return sym ? checker.getTypeOfSymbolAtLocation(sym, node) : null;
62
- };
63
- /* extract $env */
64
- const envT = typeOfProp("$env");
65
- const envType = envT ? ser.serialize(envT) : "Record<string, unknown>";
66
- /* extract $ctx and isolate middleware additions */
67
- const ctxType = typeOfProp("$ctx");
68
- if (!ctxType) {
69
- throw new Error(`Export "${options.exportName}" has no $ctx — not a Honey instance`);
70
- }
71
- const middlewareType = propsType(extractMiddlewareProps(ctxType, ser));
72
- /* extract $taps — typed tap payloads declared via .taps<T>() */
73
- let tapsType = null;
74
- const tapsT = typeOfProp("$taps");
75
- if (tapsT) {
76
- const tapsStr = ser.serialize(tapsT);
77
- if (tapsStr !== "{}" && tapsStr !== "Record<string, unknown>")
78
- tapsType = tapsStr;
79
- }
80
- const sanitize = (s) => sanitizeImportPaths(s, options.outputDir);
81
- return {
82
- envType: sanitize(envType),
83
- middlewareType: middlewareType ? sanitize(middlewareType) : null,
84
- tapsType: tapsType ? sanitize(tapsType) : null,
85
- };
86
- }
87
- /* properties that live on HoneyContext — everything else is middleware-added */
88
- const HONEY_CTX_PROPS = new Set([
89
- "background",
90
- "cookies",
91
- "env",
92
- "errors",
93
- "executionCtx",
94
- "headers",
95
- "meta",
96
- "params",
97
- "path",
98
- "req",
99
- "res",
100
- "routePattern",
101
- "search",
102
- "searchAll",
103
- "tap",
104
- ]);
105
- function propsType(props) {
106
- if (props.length === 0)
107
- return null;
108
- return `{ ${props.map((p) => `${quoteKey(p.name)}${p.opt ? "?" : ""}: ${p.type}`).join("; ")} }`;
109
- }
110
- /** Is a property name something a type literal can spell and a consumer can see? */
111
- function isPublicName(name) {
112
- /* `#secret` private fields surface as `__#123@#secret` — never part of a type */
113
- return !name.startsWith("#") && !name.startsWith("__#");
114
- }
115
- function extractMiddlewareProps(ctxType, ser) {
116
- const { checker, compiler, node } = ser;
117
- const mwProps = ctxType.getProperties().filter((p) => {
118
- const name = p.getName();
119
- if (HONEY_CTX_PROPS.has(name))
120
- return false;
121
- /* skip internal/private properties (underscore-prefixed) */
122
- if (name.startsWith("_"))
123
- return false;
124
- return isPublicName(name);
125
- });
126
- return mwProps.map((p) => {
127
- const t = checker.getTypeOfSymbolAtLocation(p, p.valueDeclaration ?? node);
128
- const opt = (p.flags & compiler.SymbolFlags.Optional) !== 0;
129
- /* 1. try declaration-site TypeReference (explicit annotation on property or variable) */
130
- let typeStr;
131
- const mwDecl = p.valueDeclaration ?? p.declarations?.[0];
132
- typeStr = ser.refFromDeclaration(mwDecl);
133
- /* 1b. shorthand property — trace to the underlying variable's type annotation */
134
- if (!typeStr && mwDecl && compiler.isShorthandPropertyAssignment(mwDecl)) {
135
- const varSym = checker.getShorthandAssignmentValueSymbol(mwDecl);
136
- if (varSym) {
137
- const varDecl = varSym.valueDeclaration ?? varSym.declarations?.[0];
138
- typeStr = ser.refFromDeclaration(varDecl);
139
- /* 1c. destructured binding (e.g. const { shardDb } = openShardSession(...))
140
- * — trace through the function return type to find the original type annotation */
141
- if (!typeStr && varDecl && compiler.isBindingElement(varDecl)) {
142
- let parent = varDecl.parent;
143
- while (parent && !compiler.isVariableDeclaration(parent))
144
- parent = parent.parent;
145
- if (parent && compiler.isVariableDeclaration(parent)) {
146
- const initializer = parent.initializer;
147
- if (initializer) {
148
- const initType = checker.getTypeAtLocation(initializer);
149
- const retProp = initType.getProperty(p.getName());
150
- if (retProp?.valueDeclaration && compiler.isShorthandPropertyAssignment(retProp.valueDeclaration)) {
151
- const innerSym = checker.getShorthandAssignmentValueSymbol(retProp.valueDeclaration);
152
- if (innerSym) {
153
- const innerDecl = innerSym.valueDeclaration ?? innerSym.declarations?.[0];
154
- typeStr = ser.refFromDeclaration(innerDecl);
155
- }
156
- }
157
- }
158
- }
159
- }
160
- }
161
- }
162
- /* 2. a named type as an import() reference; 3. structural */
163
- typeStr ??= ser.asRef(t) ?? ser.serialize(t);
164
- return { name: p.getName(), opt, type: typeStr };
165
- });
166
- }
167
- /** Check if a symbol is exported from its source file */
168
- function isExportedFromFile(sym, sf, checker) {
169
- /* .d.ts module types are always accessible */
170
- if (sf.isDeclarationFile)
171
- return true;
172
- const moduleSym = checker.getSymbolAtLocation(sf);
173
- if (!moduleSym)
174
- return false;
175
- const exports = checker.getExportsOfModule(moduleSym);
176
- return exports.some((e) => e.getName() === sym.getName());
177
- }
178
- /** Lib types every program has in scope; their names are written as is, never imported. */
179
- function isLibFile(fileName) {
180
- return /(?:^|[\\/])lib\.[\w.-]*\.d\.ts$/.test(fileName) || /[\\/]typescript[\\/]lib[\\/]/.test(fileName);
181
- }
182
- /**
183
- * TypeScript types → type source text.
184
- *
185
- * Named types become `import("…").Name<Args>` references when the declaring module exports
186
- * them; everything else is written structurally. The structural writer is precise about the
187
- * things a reader relies on: optional and rest parameters, generic signatures, tuple rest and
188
- * optional elements, literal types (quoted), boolean literals, quoted keys, and precedence
189
- * (`(() => void)[]`, `(A | B) & C`). A type it is still expanding when it meets itself again
190
- * is written as `unknown` there, never expanded without end.
191
- */
192
- class Serializer {
193
- checker;
194
- compiler;
195
- node;
196
- #active = new Set();
197
- /* type parameters of the signatures being written: inside them a parameter keeps its name */
198
- #bound = new Set();
199
- constructor(checker, node, compiler) {
200
- this.checker = checker;
201
- this.node = node;
202
- this.compiler = compiler;
203
- }
204
- /** An `import()` reference with type arguments for an annotation like `x: Foo<Bar>`. */
205
- refFromDeclaration(decl) {
206
- const { checker, compiler } = this;
207
- if (!decl)
208
- return undefined;
209
- const typeRef = decl.type;
210
- if (!typeRef || !compiler.isTypeReferenceNode(typeRef))
211
- return undefined;
212
- let refSym = checker.getSymbolAtLocation(typeRef.typeName);
213
- while (refSym && refSym.flags & compiler.SymbolFlags.Alias)
214
- refSym = checker.getAliasedSymbol(refSym);
215
- if (!refSym?.declarations?.length)
216
- return undefined;
217
- const srcFile = refSym.declarations[0].getSourceFile();
218
- if (isLibFile(srcFile.fileName))
219
- return undefined;
220
- if (!isExportedFromFile(refSym, srcFile, checker))
221
- return undefined;
222
- const args = typeRef.typeArguments?.map((a) => {
223
- const t = checker.getTypeFromTypeNode(a);
224
- return this.asRef(t) ?? this.serialize(t);
225
- });
226
- const argText = args && args.length > 0 ? `<${args.join(", ")}>` : "";
227
- return `import("${srcFile.fileName}").${refSym.getName()}${argText}`;
228
- }
229
- /**
230
- * `import("path").TypeName<Args>` for a named type whose module exports it, else null.
231
- * Globals (Promise, Map, …) are left to `serialize`.
232
- */
233
- asRef(type, depth = 0) {
234
- const { checker, compiler } = this;
235
- if (depth > 6)
236
- return null;
237
- /* union with never members (from intersection narrowing) — simplify first */
238
- if (type.isUnion()) {
239
- const nonNever = type.types.filter((t) => !(t.flags & compiler.TypeFlags.Never));
240
- if (nonNever.length === 1)
241
- return this.asRef(nonNever[0], depth);
242
- }
243
- const sym = type.aliasSymbol ?? type.getSymbol();
244
- if (!sym)
245
- return null;
246
- const name = sym.getName();
247
- if (!name || name.startsWith("__") || name === "Object")
248
- return null;
249
- const decls = sym.declarations;
250
- if (!decls?.length)
251
- return null;
252
- const sf = decls[0].getSourceFile();
253
- if (isLibFile(sf.fileName))
254
- return null;
255
- const named = (sym.flags &
256
- (compiler.SymbolFlags.TypeAlias |
257
- compiler.SymbolFlags.Interface |
258
- compiler.SymbolFlags.Class |
259
- compiler.SymbolFlags.Enum)) !==
260
- 0;
261
- /* only reference .d.ts symbols or explicitly declared named types from .ts files */
262
- if (!sf.isDeclarationFile && !named)
263
- return null;
264
- const typeArgs = type.aliasSymbol ? type.aliasTypeArguments : type.typeArguments;
265
- /* a class or interface reference carries its `this` type as a trailing argument */
266
- const declared = sym.declarations?.[0];
267
- const paramCount = declared && "typeParameters" in declared
268
- ? (declared.typeParameters?.length ?? 0)
269
- : (typeArgs?.length ?? 0);
270
- const args = (typeArgs ?? []).slice(0, paramCount);
271
- const withArgs = (ref) => args.length > 0
272
- ? `${ref}<${args.map((arg) => this.asRef(arg, depth + 1) ?? this.serialize(arg)).join(", ")}>`
273
- : ref;
274
- /* a global type (an ambient script such as wrangler's worker-configuration.d.ts, or
275
- * `declare global`) is in scope wherever the app compiles: write its name. Expanding it
276
- * loses overloads and generics, and the copy is not assignable back to the original. */
277
- if (named) {
278
- const globalName = this.#globalName(sym, decls[0]);
279
- if (globalName !== null)
280
- return withArgs(globalName);
281
- }
282
- /* any other ambient script declaration has no import() path */
283
- if (sf.isDeclarationFile && !sf.externalModuleIndicator) {
284
- return null;
285
- }
286
- /* skip non-exported symbols — import() on them resolves to `any` */
287
- if (!isExportedFromFile(sym, sf, checker))
288
- return null;
289
- return withArgs(`import("${sf.fileName}").${name}`);
290
- }
291
- /** The name a global declaration is reachable by (`Cloudflare.Env`), or null if it is module-scoped. */
292
- #globalName(sym, decl) {
293
- const { compiler } = this;
294
- let global = false;
295
- for (let n = decl.parent; n; n = n.parent) {
296
- if (compiler.isModuleDeclaration(n) && n.flags & compiler.NodeFlags.GlobalAugmentation) {
297
- global = true;
298
- break;
299
- }
300
- if (compiler.isSourceFile(n)) {
301
- global = !n.externalModuleIndicator;
302
- break;
303
- }
304
- }
305
- if (!global)
306
- return null;
307
- /* a `declare global` member is qualified as `global.Name`; in scope it is `Name` */
308
- const name = this.checker.getFullyQualifiedName(sym).replace(/^global\./, "");
309
- return /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/.test(name) ? name : null;
310
- }
311
- serialize(type) {
312
- if (this.#active.has(type))
313
- return "unknown";
314
- this.#active.add(type);
315
- try {
316
- return this.#serialize(type);
317
- }
318
- finally {
319
- this.#active.delete(type);
320
- }
321
- }
322
- #serialize(type) {
323
- const { checker, compiler, node } = this;
324
- const F = compiler.TypeFlags;
325
- const next = (t) => this.serialize(t);
326
- /* an enum is nominal: keep its name when it can be referenced */
327
- const enumSym = type.getSymbol();
328
- if (enumSym && enumSym.flags & compiler.SymbolFlags.Enum) {
329
- const ref = this.asRef(type);
330
- if (ref)
331
- return ref;
332
- }
333
- /* primitives */
334
- if (type.flags & F.String)
335
- return "string";
336
- if (type.flags & F.Number)
337
- return "number";
338
- if (type.flags & F.Boolean)
339
- return "boolean";
340
- if (type.flags & F.BigInt)
341
- return "bigint";
342
- if (type.flags & F.ESSymbol)
343
- return "symbol";
344
- if (type.flags & F.UniqueESSymbol)
345
- return "symbol";
346
- if (type.flags & F.Void)
347
- return "void";
348
- if (type.flags & F.Undefined)
349
- return "undefined";
350
- if (type.flags & F.Null)
351
- return "null";
352
- if (type.flags & F.Never)
353
- return "never";
354
- if (type.flags & F.Unknown)
355
- return "unknown";
356
- if (type.flags & F.Any)
357
- return "unknown";
358
- if (type.flags & F.NonPrimitive)
359
- return "object";
360
- /* literals */
361
- if (type.isStringLiteral())
362
- return JSON.stringify(type.value);
363
- if (type.isNumberLiteral())
364
- return `${type.value}`;
365
- if (type.flags & F.BigIntLiteral) {
366
- const v = type.value;
367
- return `${v.negative ? "-" : ""}${v.base10Value}n`;
368
- }
369
- if (type.flags & F.BooleanLiteral)
370
- return checker.typeToString(type);
371
- if (type.flags & F.TemplateLiteral)
372
- return "string";
373
- /* a type parameter: by name inside the signature that declares it, else its constraint or unknown */
374
- if (type.flags & F.TypeParameter) {
375
- if (type.symbol && this.#bound.has(type.symbol))
376
- return type.symbol.getName();
377
- const constraint = checker.getBaseConstraintOfType(type);
378
- return constraint && constraint !== type ? next(constraint) : "unknown";
379
- }
380
- /* union */
381
- if (type.isUnion())
382
- return unionText(type.types.map(next));
383
- /* intersection */
384
- if (type.isIntersection())
385
- return intersectionText(type.types.map(next));
386
- /* array */
387
- if (checker.isArrayType(type)) {
388
- const args = checker.getTypeArguments(type);
389
- const readonlyArray = type.getSymbol()?.getName() === "ReadonlyArray";
390
- const el = args.length > 0 ? arrayText(next(args[0])) : "unknown[]";
391
- return readonlyArray ? `readonly ${el}` : el;
392
- }
393
- /* tuple — rest and optional elements kept */
394
- if (checker.isTupleType(type)) {
395
- const ref = type;
396
- const args = checker.getTypeArguments(ref);
397
- const target = ref.target;
398
- const parts = args.map((arg, i) => {
399
- const flags = target.elementFlags?.[i] ?? compiler.ElementFlags.Required;
400
- if (flags & compiler.ElementFlags.Rest)
401
- return `...${arrayText(next(arg))}`;
402
- if (flags & compiler.ElementFlags.Variadic)
403
- return `...${next(arg)}`;
404
- if (flags & compiler.ElementFlags.Optional)
405
- return `${next(arg)}?`;
406
- return next(arg);
407
- });
408
- return `${target.readonly ? "readonly " : ""}[${parts.join(", ")}]`;
409
- }
410
- /* function (pure callable, no data properties) */
411
- const sigs = type.getCallSignatures();
412
- if (sigs.length > 0 && type.getProperties().length === 0) {
413
- const parts = sigs.map((sig) => this.#signature(sig));
414
- return parts.length === 1 ? parts[0] : parts.map((p) => `(${p})`).join(" & ");
415
- }
416
- /* well-known globals — keep name, serialize type args */
417
- const sym = type.getSymbol();
418
- if (sym) {
419
- const name = sym.getName();
420
- const decl = sym.declarations?.[0];
421
- if (decl && isLibFile(decl.getSourceFile().fileName) && name !== "Object" && !name.startsWith("__")) {
422
- const args = type.typeArguments ?? [];
423
- const declaredParams = decl.typeParameters?.length ?? args.length;
424
- const kept = args.slice(0, declaredParams);
425
- return kept.length > 0 ? `${name}<${kept.map(next).join(", ")}>` : name;
426
- }
427
- /* named types — prefer import() reference over structural expansion */
428
- if (name && !name.startsWith("__") && name !== "Object") {
429
- const ref = this.asRef(type);
430
- if (ref)
431
- return ref;
432
- }
433
- }
434
- const aliasRef = type.aliasSymbol ? this.asRef(type) : null;
435
- if (aliasRef)
436
- return aliasRef;
437
- /* Record<string, V> — index signature only */
438
- const stringIdx = type.getStringIndexType();
439
- if (stringIdx && type.getProperties().length === 0) {
440
- return `Record<string, ${next(stringIdx)}>`;
441
- }
442
- /* object — expand to structural form */
443
- const props = type.getProperties().filter((p) => isPublicName(p.getName()));
444
- const entries = [];
445
- for (const p of props) {
446
- const decls = p.getDeclarations();
447
- if (decls?.length) {
448
- const flags = compiler.getCombinedModifierFlags(decls[0]);
449
- if (flags & (compiler.ModifierFlags.Private | compiler.ModifierFlags.Protected))
450
- continue;
451
- }
452
- const pt = checker.getTypeOfSymbolAtLocation(p, decls?.[0] ?? node);
453
- const opt = (p.flags & compiler.SymbolFlags.Optional) !== 0;
454
- const ro = decls?.some((d) => (compiler.getCombinedModifierFlags(d) & compiler.ModifierFlags.Readonly) !== 0) ?? false;
455
- entries.push(`${ro ? "readonly " : ""}${quoteKey(p.getName())}${opt ? "?" : ""}: ${next(pt)}`);
456
- }
457
- if (stringIdx)
458
- entries.push(`[key: string]: ${next(stringIdx)}`);
459
- for (const sig of sigs)
460
- entries.push(this.#signature(sig, true));
461
- if (entries.length > 0)
462
- return `{ ${entries.join("; ")} }`;
463
- if (props.length === 0)
464
- return "{}";
465
- return "unknown";
466
- }
467
- /** `<T extends X>(a: A, b?: B, ...rest: C[]) => R`, or the call-signature member form */
468
- #signature(sig, member = false) {
469
- const typeParams = sig.getTypeParameters() ?? [];
470
- const added = typeParams.map((t) => t.symbol).filter((s) => s !== undefined && !this.#bound.has(s));
471
- for (const s of added)
472
- this.#bound.add(s);
473
- try {
474
- return this.#signatureText(sig, typeParams, member);
475
- }
476
- finally {
477
- for (const s of added)
478
- this.#bound.delete(s);
479
- }
480
- }
481
- #signatureText(sig, typeParams, member) {
482
- const { checker, compiler, node } = this;
483
- const tp = typeParams.length > 0
484
- ? `<${typeParams
485
- .map((t) => {
486
- const c = t.getConstraint();
487
- return `${t.symbol.getName()}${c ? ` extends ${this.#typeParamText(c)}` : ""}`;
488
- })
489
- .join(", ")}>`
490
- : "";
491
- const params = sig.getParameters().map((p) => {
492
- const pt = checker.getTypeOfSymbolAtLocation(p, p.valueDeclaration ?? node);
493
- const decl = p.valueDeclaration;
494
- const param = decl && compiler.isParameter(decl) ? decl : undefined;
495
- const isRest = param?.dotDotDotToken !== undefined;
496
- const optional = !isRest && param !== undefined && checker.isOptionalParameter(param);
497
- /* an optional parameter's type carries `| undefined`; `?` already says so */
498
- const text = optional ? this.#typeParamText(checker.getNonNullableType(pt)) : this.#typeParamText(pt);
499
- return `${isRest ? "..." : ""}${p.getName()}${optional ? "?" : ""}: ${text}`;
500
- });
501
- const ret = this.#typeParamText(checker.getReturnTypeOfSignature(sig));
502
- return member ? `${tp}(${params.join(", ")}): ${ret}` : `${tp}(${params.join(", ")}) => ${ret}`;
503
- }
504
- /** A type inside a signature: a bare type parameter stays by name, bound by the signature. */
505
- #typeParamText(t) {
506
- if (t.flags & this.compiler.TypeFlags.TypeParameter)
507
- return t.symbol.getName();
508
- return this.asRef(t) ?? this.serialize(t);
509
- }
510
- }
511
- /**
512
- * Does `type` contain `token` outside every bracket and string? Used to parenthesize only
513
- * where precedence needs it.
514
- */
515
- function hasTopLevel(type, token) {
516
- let depth = 0;
517
- let quote = null;
518
- for (let i = 0; i < type.length; i++) {
519
- const c = type[i];
520
- if (quote !== null) {
521
- if (c === "\\")
522
- i++;
523
- else if (c === quote)
524
- quote = null;
525
- continue;
526
- }
527
- if (c === '"' || c === "'" || c === "`")
528
- quote = c;
529
- else if (c === "(" || c === "{" || c === "[" || c === "<")
530
- depth++;
531
- else if (c === ")" || c === "}" || c === "]" || (c === ">" && type[i - 1] !== "="))
532
- depth--;
533
- else if (depth === 0 && type.startsWith(token, i))
534
- return true;
535
- }
536
- return false;
537
- }
538
- function arrayText(el) {
539
- return hasTopLevel(el, "|") || hasTopLevel(el, "&") || hasTopLevel(el, "=>") || el.startsWith("readonly ")
540
- ? `(${el})[]`
541
- : `${el}[]`;
542
- }
543
- function unionText(parts) {
544
- return [...new Set(parts)].map((p) => (hasTopLevel(p, "=>") ? `(${p})` : p)).join(" | ");
545
- }
546
- function intersectionText(parts) {
547
- return parts.map((p) => (hasTopLevel(p, "|") || hasTopLevel(p, "=>") ? `(${p})` : p)).join(" & ");
548
- }
549
- const packageCache = new Map();
550
- function nearestPackage(fromFile) {
551
- let dir = dirname(fromFile);
552
- const visited = [];
553
- let found = null;
554
- let prev = "";
555
- while (dir !== prev) {
556
- const cached = packageCache.get(dir);
557
- if (cached !== undefined) {
558
- found = cached;
559
- break;
560
- }
561
- visited.push(dir);
562
- const file = join(dir, "package.json");
563
- if (existsSync(file)) {
564
- try {
565
- const json = JSON.parse(readFileSync(file, "utf8"));
566
- /* a package.json without a name (a "type": "module" marker) is not a package boundary */
567
- if (typeof json.name === "string") {
568
- found = { dir, json };
569
- break;
570
- }
571
- }
572
- catch {
573
- /* unreadable — keep walking */
574
- }
575
- }
576
- prev = dir;
577
- dir = dirname(dir);
578
- }
579
- for (const d of visited)
580
- packageCache.set(d, found);
581
- return found;
582
- }
583
- /** Every file an `exports` value can point at, with the subpath that names it. */
584
- function exportTargets(exports) {
585
- const out = [];
586
- const collect = (subpath, value) => {
587
- if (typeof value === "string")
588
- out.push({ subpath, target: value });
589
- else if (Array.isArray(value))
590
- for (const v of value)
591
- collect(subpath, v);
592
- else if (value !== null && typeof value === "object") {
593
- for (const v of Object.values(value))
594
- collect(subpath, v);
595
- }
596
- };
597
- if (typeof exports === "string" || Array.isArray(exports))
598
- collect(".", exports);
599
- else if (exports !== null && typeof exports === "object") {
600
- const entries = Object.entries(exports);
601
- if (entries.length > 0 && entries.every(([k]) => !k.startsWith(".")))
602
- collect(".", exports);
603
- else
604
- for (const [k, v] of entries)
605
- collect(k, v);
606
- }
607
- return out;
608
- }
609
- function stripTypeExtension(path) {
610
- return path
611
- .replace(/\.d\.[mc]?ts$/, "")
612
- .replace(/\.[mc]?tsx?$/, "")
613
- .replace(/\.[mc]?js$/, "");
614
- }
615
- /** `@types/foo` types the `foo` package; `@types/scope__name` types `@scope/name`. */
616
- function typedPackageName(name) {
617
- if (!name.startsWith("@types/"))
618
- return name;
619
- const bare = name.slice("@types/".length);
620
- return bare.includes("__") ? `@${bare.replace("__", "/")}` : bare;
621
- }
622
- /**
623
- * The specifier a generated file should use to import `filePath`.
624
- *
625
- * A file of another package is named through that package — its `exports` subpath when one
626
- * points at the file (any condition: `types`, `default`, or a source condition), its `types`
627
- * entry, or (no `exports` map) its path without extension; an `@types` package by the package it
628
- * types. A file of the output's own package is a relative path. Lib files never get here.
629
- */
630
- function moduleSpecifier(filePath, outputDir) {
631
- const pkg = nearestPackage(filePath);
632
- const ownPkg = outputDir ? nearestPackage(join(outputDir, "_")) : null;
633
- const relativeSpecifier = () => {
634
- if (!outputDir)
635
- return filePath;
636
- let rel = relative(outputDir, filePath).split(sep).join("/");
637
- if (!rel.startsWith("."))
638
- rel = `./${rel}`;
639
- return rel;
640
- };
641
- if (!pkg || (ownPkg && pkg.dir === ownPkg.dir))
642
- return relativeSpecifier();
643
- const name = typedPackageName(String(pkg.json.name));
644
- const rel = `./${relative(pkg.dir, filePath).split(sep).join("/")}`;
645
- if (pkg.json.exports !== undefined) {
646
- const match = exportTargets(pkg.json.exports).find((e) => e.target === rel || stripTypeExtension(e.target) === stripTypeExtension(rel));
647
- if (match)
648
- return match.subpath === "." ? name : `${name}/${match.subpath.replace(/^\.\//, "")}`;
649
- /* the package does not export this file — a path into it would not resolve */
650
- return relativeSpecifier();
651
- }
652
- const typesEntry = pkg.json.types ?? pkg.json.typings;
653
- if (typeof typesEntry === "string" &&
654
- stripTypeExtension(`./${typesEntry.replace(/^\.\//, "")}`) === stripTypeExtension(rel)) {
655
- return name;
656
- }
657
- const sub = stripTypeExtension(rel.slice(2)).replace(/\/index$/, "");
658
- return sub === "index" || sub === "" ? name : `${name}/${sub}`;
659
- }
660
- /**
661
- * Rewrite absolute `import("…")` paths into resolvable module specifiers, and drop the
662
- * `import()` around lib types (`Date`, `Promise`), which are global.
663
- */
664
- function sanitizeImportPaths(str, outputDir) {
665
- return str.replace(/import\("([^"]+)"\)\./g, (_match, filePath) => {
666
- if (isLibFile(filePath))
667
- return "";
668
- return `import("${moduleSpecifier(filePath, outputDir)}").`;
669
- });
670
- }
671
- const HTTP_METHODS = new Set(["all", "delete", "get", "head", "options", "patch", "post", "put"]);
672
- /**
673
- * Extracts base ctx and per-route middleware additions from sub-chains.
674
- *
675
- * Every source file of the program is scanned for HTTP method calls (`.get()`, `.post()`, …)
676
- * on a Honey instance. A route is keyed by its full path — the receiver's `$basePath` type
677
- * joined with the literal path, exactly as the router registers it — so `v1.get("/items")`
678
- * and `pub.get("/items")` never share an entry. A receiver whose base path is not a literal
679
- * type cannot be keyed and is skipped: a route without an entry gets the base ctx, never
680
- * another route's.
681
- */
682
- export async function extractChainTypes(options) {
683
- const { appType, checker, compiler, node: baseNode, project } = await loadEntry(options);
684
- const ser = new Serializer(checker, baseNode, compiler);
685
- function getCtxType(tsType, locationNode) {
686
- const sym = tsType.getProperty("$ctx");
687
- if (!sym)
688
- return null;
689
- return checker.getTypeOfSymbolAtLocation(sym, locationNode ?? sym.valueDeclaration ?? baseNode);
690
- }
691
- function basePathOf(tsType, locationNode) {
692
- const sym = tsType.getProperty("$basePath");
693
- if (!sym)
694
- return null;
695
- const t = checker.getTypeOfSymbolAtLocation(sym, locationNode);
696
- return t.isStringLiteral() ? t.value : null;
697
- }
698
- /* extract base ctx */
699
- let envType = "Record<string, unknown>";
700
- const envSym = appType.getProperty("$env");
701
- if (envSym)
702
- envType = ser.serialize(checker.getTypeOfSymbolAtLocation(envSym, baseNode));
703
- const baseCtxType = getCtxType(appType, baseNode);
704
- if (!baseCtxType) {
705
- throw new Error(`Export "${options.exportName}" has no $ctx — not a Honey instance`);
706
- }
707
- const baseMwProps = extractMiddlewareProps(baseCtxType, ser);
708
- const baseMiddlewareType = propsType(baseMwProps);
709
- /* build name→type map for reusing base type references in route middleware */
710
- const basePropTypeByName = new Map();
711
- for (const p of baseMwProps)
712
- basePropTypeByName.set(p.name, p.type);
713
- /* collect base middleware property names for diffing */
714
- const baseMwPropNames = new Set();
715
- for (const p of baseCtxType.getProperties()) {
716
- const name = p.getName();
717
- if (!HONEY_CTX_PROPS.has(name) && !name.startsWith("_"))
718
- baseMwPropNames.add(name);
719
- }
720
- const sanitize = (s) => sanitizeImportPaths(s, options.outputDir);
721
- const routeMiddleware = Object.create(null);
722
- const routeMiddlewareProps = Object.create(null);
723
- function visitNode(node) {
724
- if (compiler.isCallExpression(node) && compiler.isPropertyAccessExpression(node.expression)) {
725
- const methodName = node.expression.name.text;
726
- const pathArg = node.arguments[0];
727
- if (HTTP_METHODS.has(methodName) && pathArg && compiler.isStringLiteralLike(pathArg)) {
728
- const receiverExpr = node.expression.expression;
729
- const receiverType = checker.getTypeAtLocation(receiverExpr);
730
- const ctxType = getCtxType(receiverType, receiverExpr);
731
- const basePath = ctxType ? basePathOf(receiverType, receiverExpr) : null;
732
- if (ctxType && basePath !== null) {
733
- for (const variant of fullPaths(basePath, pathArg.text))
734
- recordRoute(`${methodName} ${variant}`, ctxType);
735
- }
736
- }
737
- }
738
- compiler.forEachChild(node, visitNode);
739
- }
740
- /** The paths the router serves for this registration — an optional last param yields two. */
741
- function fullPaths(basePath, path) {
742
- try {
743
- return expandOptional(parsePattern(joinPatterns(basePath, path))).map((segments) => canonical(segments));
744
- }
745
- catch {
746
- /* a pattern the router would refuse registers nothing */
747
- return [];
748
- }
749
- }
750
- function recordRoute(key, ctxType) {
751
- /* extract extra middleware props by iterating intersection MEMBERS individually.
752
- * This preserves source-level declarations (e.g. ShorthandPropertyAssignment)
753
- * that get lost when extracting from the flattened intersection. */
754
- const extraEntries = [];
755
- const dupeNames = new Set();
756
- const members = ctxType.isIntersection() ? ctxType.types : [ctxType];
757
- for (const member of members) {
758
- for (const rp of extractMiddlewareProps(member, ser)) {
759
- if (baseMwPropNames.has(rp.name))
760
- continue;
761
- if (extraEntries.some((e) => e.name === rp.name)) {
762
- dupeNames.add(rp.name);
763
- continue;
764
- }
765
- extraEntries.push(rp);
766
- }
767
- }
768
- /* a property in several intersection members (e.g. auth narrowed by a later middleware)
769
- * is read from the flattened intersection, so TypeScript computes the intersected type */
770
- for (const dupeName of dupeNames) {
771
- const sym = ctxType.getProperty(dupeName);
772
- if (!sym)
773
- continue;
774
- const t = checker.getTypeOfSymbolAtLocation(sym, sym.valueDeclaration ?? baseNode);
775
- const typeStr = ser.asRef(t) ?? ser.serialize(t);
776
- const idx = extraEntries.findIndex((e) => e.name === dupeName);
777
- if (idx !== -1)
778
- extraEntries[idx] = { ...extraEntries[idx], type: typeStr };
779
- }
780
- if (extraEntries.length === 0)
781
- return;
782
- /* reuse compact base type references when the route has the same property
783
- * (e.g. shardDb: ShardDb from base → reuse import ref instead of structural expansion) */
784
- const entries = extraEntries.map((e) => {
785
- const baseRef = basePropTypeByName.get(e.name);
786
- return baseRef && baseRef.length < e.type.length ? { ...e, type: baseRef } : e;
787
- });
788
- routeMiddleware[key] = sanitize(propsType(entries) ?? "{}");
789
- routeMiddlewareProps[key] = entries.map((e) => ({ name: e.name, opt: e.opt, type: sanitize(e.type) }));
790
- }
791
- /* every source file of the program, not only the entry: routes are often registered in
792
- modules the entry imports */
793
- for (const sf of project.getSourceFiles()) {
794
- const compilerSf = bridge(sf.compilerNode);
795
- if (compilerSf.isDeclarationFile)
796
- continue;
797
- if (/[\\/]node_modules[\\/]/.test(compilerSf.fileName))
798
- continue;
799
- visitNode(compilerSf);
800
- }
801
- /* extract $taps */
802
- let tapsType = null;
803
- const tapsSym = appType.getProperty("$taps");
804
- if (tapsSym) {
805
- const tapsStr = ser.serialize(checker.getTypeOfSymbolAtLocation(tapsSym, baseNode));
806
- if (tapsStr !== "{}" && tapsStr !== "Record<string, unknown>")
807
- tapsType = tapsStr;
808
- }
809
- return {
810
- base: {
811
- envType: sanitize(envType),
812
- middlewareType: baseMiddlewareType ? sanitize(baseMiddlewareType) : null,
813
- tapsType: tapsType ? sanitize(tapsType) : null,
814
- },
815
- routeMiddleware: { ...routeMiddleware },
816
- routeMiddlewareProps: { ...routeMiddlewareProps },
817
- };
818
- }
819
- //# sourceMappingURL=type-extractor.js.map