@lovrozagar/honey 0.7.2 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1003) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -1969
  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 -744
  71. package/dist/index.js +12 -2363
  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 -776
  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 +181 -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/middleware-chain.d.ts +16 -0
  237. package/dist/routing/middleware-chain.js +41 -0
  238. package/dist/routing/output-types.d.ts +91 -0
  239. package/dist/routing/output-types.js +1 -0
  240. package/dist/routing/pattern.d.ts +55 -0
  241. package/dist/routing/pattern.js +219 -0
  242. package/dist/routing/record.d.ts +18 -0
  243. package/dist/routing/record.js +4 -0
  244. package/dist/routing/register.d.ts +135 -0
  245. package/dist/routing/register.js +155 -0
  246. package/dist/routing/request-path.d.ts +30 -0
  247. package/dist/routing/request-path.js +173 -0
  248. package/dist/routing/route-builder.d.ts +160 -0
  249. package/dist/routing/route-builder.js +86 -0
  250. package/dist/routing/route-tree.d.ts +18 -0
  251. package/dist/routing/route-tree.js +91 -0
  252. package/dist/routing/settings-chain.d.ts +75 -0
  253. package/dist/routing/settings-chain.js +137 -0
  254. package/dist/routing/settings.d.ts +90 -0
  255. package/dist/routing/settings.js +44 -0
  256. package/dist/routing/tap.d.ts +31 -0
  257. package/dist/routing/tap.js +77 -0
  258. package/dist/routing/tree-merge.d.ts +7 -0
  259. package/dist/routing/tree-merge.js +77 -0
  260. package/dist/routing/tree.d.ts +85 -0
  261. package/dist/routing/tree.js +196 -0
  262. package/dist/routing/types.d.ts +20 -0
  263. package/dist/routing/types.js +1 -0
  264. package/dist/routing/ws-builder.d.ts +62 -0
  265. package/dist/routing/ws-builder.js +109 -0
  266. package/dist/runtime/detect-runtime.d.ts +16 -0
  267. package/dist/runtime/detect-runtime.js +11 -0
  268. package/dist/runtime/optional-peer.d.ts +10 -0
  269. package/dist/runtime/optional-peer.js +19 -0
  270. package/dist/schema/arktype.d.ts +7 -0
  271. package/dist/schema/arktype.js +13 -0
  272. package/dist/schema/canonicalize.d.ts +8 -0
  273. package/dist/schema/canonicalize.js +19 -0
  274. package/dist/schema/effect.d.ts +7 -0
  275. package/dist/schema/effect.js +4 -0
  276. package/dist/schema/naming.d.ts +31 -0
  277. package/dist/schema/naming.js +116 -0
  278. package/dist/schema/sanitize-spec.d.ts +15 -0
  279. package/dist/schema/sanitize-spec.js +43 -0
  280. package/dist/schema/slots.d.ts +15 -0
  281. package/dist/schema/slots.js +179 -0
  282. package/dist/schema/to-json-schema.d.ts +34 -0
  283. package/dist/schema/to-json-schema.js +94 -0
  284. package/dist/schema/valibot.d.ts +4 -0
  285. package/dist/schema/valibot.js +153 -0
  286. package/dist/schema/yup.d.ts +3 -0
  287. package/dist/schema/yup.js +57 -0
  288. package/dist/schema/zod.d.ts +6 -0
  289. package/dist/schema/zod.js +192 -0
  290. package/dist/security/crypto.d.ts +7 -0
  291. package/dist/security/crypto.js +30 -0
  292. package/dist/streaming/producer-stream.d.ts +45 -0
  293. package/dist/streaming/producer-stream.js +251 -0
  294. package/dist/telemetry/fields.d.ts +43 -0
  295. package/dist/telemetry/fields.js +64 -0
  296. package/dist/telemetry/log-format.d.ts +7 -0
  297. package/dist/telemetry/log-format.js +43 -0
  298. package/dist/telemetry/logger.d.ts +44 -0
  299. package/dist/telemetry/logger.js +122 -0
  300. package/dist/telemetry/otel-subpath.d.ts +7 -0
  301. package/dist/telemetry/otel-subpath.js +5 -0
  302. package/dist/telemetry/otel.d.ts +50 -57
  303. package/dist/telemetry/otel.js +54 -130
  304. package/dist/telemetry/request-log.d.ts +22 -0
  305. package/dist/telemetry/request-log.js +83 -0
  306. package/dist/telemetry/request-trace.d.ts +123 -0
  307. package/dist/telemetry/request-trace.js +199 -0
  308. package/dist/telemetry/span-lifecycle.d.ts +11 -0
  309. package/dist/telemetry/span-lifecycle.js +114 -0
  310. package/dist/telemetry/traceparent.d.ts +40 -0
  311. package/dist/telemetry/traceparent.js +73 -0
  312. package/dist/testing/testing.d.ts +42 -0
  313. package/dist/testing/testing.js +101 -0
  314. package/dist/validation/content-type.d.ts +21 -0
  315. package/dist/validation/content-type.js +42 -0
  316. package/dist/validation/standard-schema.d.ts +41 -0
  317. package/dist/validation/standard-schema.js +5 -0
  318. package/dist/validation/validate-input.d.ts +45 -0
  319. package/dist/validation/validate-input.js +174 -0
  320. package/dist/validation/validate-output.d.ts +34 -0
  321. package/dist/validation/validate-output.js +107 -0
  322. package/dist/ws/bun.d.ts +30 -25
  323. package/dist/ws/bun.js +42 -46
  324. package/dist/ws/cloudflare.d.ts +6 -75
  325. package/dist/ws/cloudflare.js +37 -104
  326. package/dist/ws/contract.d.ts +74 -0
  327. package/dist/ws/contract.js +83 -0
  328. package/dist/ws/node.d.ts +12 -21
  329. package/dist/ws/node.js +103 -151
  330. package/dist/ws/origin.d.ts +23 -0
  331. package/dist/ws/origin.js +48 -0
  332. package/dist/ws/route.d.ts +14 -0
  333. package/dist/ws/route.js +5 -0
  334. package/dist/ws/session.d.ts +15 -6
  335. package/dist/ws/session.js +22 -23
  336. package/dist/ws/shared.d.ts +23 -33
  337. package/dist/ws/shared.js +53 -39
  338. package/package.json +169 -251
  339. package/dist/accepts.d.ts +0 -12
  340. package/dist/accepts.d.ts.map +0 -1
  341. package/dist/accepts.js +0 -126
  342. package/dist/accepts.js.map +0 -1
  343. package/dist/body-kind.d.ts +0 -26
  344. package/dist/body-kind.d.ts.map +0 -1
  345. package/dist/body-kind.js +0 -70
  346. package/dist/body-kind.js.map +0 -1
  347. package/dist/body-limit.d.ts +0 -26
  348. package/dist/body-limit.d.ts.map +0 -1
  349. package/dist/body-limit.js +0 -126
  350. package/dist/body-limit.js.map +0 -1
  351. package/dist/build/index.d.ts.map +0 -1
  352. package/dist/build/index.js.map +0 -1
  353. package/dist/cli-args.d.ts +0 -33
  354. package/dist/cli-args.d.ts.map +0 -1
  355. package/dist/cli-args.js +0 -102
  356. package/dist/cli-args.js.map +0 -1
  357. package/dist/cli-go/auth.go +0 -26
  358. package/dist/cli-go/config.go +0 -192
  359. package/dist/cli-go/errors.go +0 -75
  360. package/dist/cli-go/multipart.go +0 -79
  361. package/dist/cli-go/output.go +0 -163
  362. package/dist/cli-go/root.go +0 -30
  363. package/dist/cli-go/stream.go +0 -88
  364. package/dist/cli-go/version.go +0 -5
  365. package/dist/cli.d.ts +0 -3
  366. package/dist/cli.d.ts.map +0 -1
  367. package/dist/cli.js +0 -209
  368. package/dist/cli.js.map +0 -1
  369. package/dist/client/defaults.d.ts +0 -12
  370. package/dist/client/defaults.d.ts.map +0 -1
  371. package/dist/client/defaults.js +0 -48
  372. package/dist/client/defaults.js.map +0 -1
  373. package/dist/client/error.d.ts +0 -49
  374. package/dist/client/error.d.ts.map +0 -1
  375. package/dist/client/error.js +0 -71
  376. package/dist/client/error.js.map +0 -1
  377. package/dist/client/http.d.ts +0 -155
  378. package/dist/client/http.d.ts.map +0 -1
  379. package/dist/client/http.js +0 -571
  380. package/dist/client/http.js.map +0 -1
  381. package/dist/client/index.d.ts +0 -23
  382. package/dist/client/index.d.ts.map +0 -1
  383. package/dist/client/index.js +0 -95
  384. package/dist/client/index.js.map +0 -1
  385. package/dist/client/path.d.ts +0 -26
  386. package/dist/client/path.d.ts.map +0 -1
  387. package/dist/client/path.js +0 -163
  388. package/dist/client/path.js.map +0 -1
  389. package/dist/client/redirect-policy.d.ts +0 -12
  390. package/dist/client/redirect-policy.d.ts.map +0 -1
  391. package/dist/client/redirect-policy.js +0 -20
  392. package/dist/client/redirect-policy.js.map +0 -1
  393. package/dist/client/sdk.d.ts +0 -70
  394. package/dist/client/sdk.d.ts.map +0 -1
  395. package/dist/client/sdk.js +0 -292
  396. package/dist/client/sdk.js.map +0 -1
  397. package/dist/client/sse.d.ts +0 -23
  398. package/dist/client/sse.d.ts.map +0 -1
  399. package/dist/client/sse.js +0 -129
  400. package/dist/client/sse.js.map +0 -1
  401. package/dist/client/types.d.ts +0 -124
  402. package/dist/client/types.d.ts.map +0 -1
  403. package/dist/client/types.js +0 -2
  404. package/dist/client/types.js.map +0 -1
  405. package/dist/client/ws.d.ts +0 -22
  406. package/dist/client/ws.d.ts.map +0 -1
  407. package/dist/client/ws.js +0 -112
  408. package/dist/client/ws.js.map +0 -1
  409. package/dist/client-go/errors.go +0 -236
  410. package/dist/client-go/export.go +0 -44
  411. package/dist/client-go/invalidation.go +0 -371
  412. package/dist/client-go/nullable.go +0 -62
  413. package/dist/client-go/realtime.go +0 -354
  414. package/dist/client-go/result.go +0 -20
  415. package/dist/client-go/runtime.go +0 -975
  416. package/dist/client-go/sse.go +0 -159
  417. package/dist/client-go/transport.go +0 -495
  418. package/dist/client-go/ws.go +0 -128
  419. package/dist/client-info.d.ts +0 -36
  420. package/dist/client-info.d.ts.map +0 -1
  421. package/dist/client-info.js +0 -53
  422. package/dist/client-info.js.map +0 -1
  423. package/dist/client-mcp/README.md +0 -10
  424. package/dist/client-mcp/server.ts +0 -221
  425. package/dist/client-mcp/types.ts +0 -19
  426. package/dist/client-python/_errors.py +0 -115
  427. package/dist/client-python/_invalidation.py +0 -494
  428. package/dist/client-python/_realtime.py +0 -179
  429. package/dist/client-python/_runtime.py +0 -860
  430. package/dist/client-python/_sse.py +0 -155
  431. package/dist/client-python/_transport.py +0 -366
  432. package/dist/client-python/_ws.py +0 -159
  433. package/dist/client-python/py.typed +0 -0
  434. package/dist/client-rust/errors.rs +0 -220
  435. package/dist/client-rust/invalidation.rs +0 -412
  436. package/dist/client-rust/invalidation_sync.rs +0 -93
  437. package/dist/client-rust/nullable.rs +0 -17
  438. package/dist/client-rust/realtime.rs +0 -702
  439. package/dist/client-rust/result.rs +0 -22
  440. package/dist/client-rust/runtime.rs +0 -980
  441. package/dist/client-rust/runtime_sync.rs +0 -484
  442. package/dist/client-rust/sse.rs +0 -188
  443. package/dist/client-rust/ws.rs +0 -167
  444. package/dist/codegen-go-cli.d.ts +0 -22
  445. package/dist/codegen-go-cli.d.ts.map +0 -1
  446. package/dist/codegen-go-cli.js +0 -964
  447. package/dist/codegen-go-cli.js.map +0 -1
  448. package/dist/codegen-go.d.ts +0 -41
  449. package/dist/codegen-go.d.ts.map +0 -1
  450. package/dist/codegen-go.js +0 -872
  451. package/dist/codegen-go.js.map +0 -1
  452. package/dist/codegen-hash.d.ts +0 -3
  453. package/dist/codegen-hash.d.ts.map +0 -1
  454. package/dist/codegen-hash.js +0 -9
  455. package/dist/codegen-hash.js.map +0 -1
  456. package/dist/codegen-ir.d.ts +0 -190
  457. package/dist/codegen-ir.d.ts.map +0 -1
  458. package/dist/codegen-ir.js +0 -661
  459. package/dist/codegen-ir.js.map +0 -1
  460. package/dist/codegen-lang.d.ts +0 -65
  461. package/dist/codegen-lang.d.ts.map +0 -1
  462. package/dist/codegen-lang.js +0 -526
  463. package/dist/codegen-lang.js.map +0 -1
  464. package/dist/codegen-load.d.ts +0 -31
  465. package/dist/codegen-load.d.ts.map +0 -1
  466. package/dist/codegen-load.js +0 -138
  467. package/dist/codegen-load.js.map +0 -1
  468. package/dist/codegen-loaders.d.ts +0 -12
  469. package/dist/codegen-loaders.d.ts.map +0 -1
  470. package/dist/codegen-loaders.js +0 -55
  471. package/dist/codegen-loaders.js.map +0 -1
  472. package/dist/codegen-mcp.d.ts +0 -13
  473. package/dist/codegen-mcp.d.ts.map +0 -1
  474. package/dist/codegen-mcp.js +0 -368
  475. package/dist/codegen-mcp.js.map +0 -1
  476. package/dist/codegen-python.d.ts +0 -33
  477. package/dist/codegen-python.d.ts.map +0 -1
  478. package/dist/codegen-python.js +0 -828
  479. package/dist/codegen-python.js.map +0 -1
  480. package/dist/codegen-route-tree-intern.d.ts +0 -40
  481. package/dist/codegen-route-tree-intern.d.ts.map +0 -1
  482. package/dist/codegen-route-tree-intern.js +0 -221
  483. package/dist/codegen-route-tree-intern.js.map +0 -1
  484. package/dist/codegen-rust.d.ts +0 -18
  485. package/dist/codegen-rust.d.ts.map +0 -1
  486. package/dist/codegen-rust.js +0 -1293
  487. package/dist/codegen-rust.js.map +0 -1
  488. package/dist/codegen-sanitize.d.ts +0 -3
  489. package/dist/codegen-sanitize.d.ts.map +0 -1
  490. package/dist/codegen-sanitize.js +0 -56
  491. package/dist/codegen-sanitize.js.map +0 -1
  492. package/dist/codegen-schema-naming.d.ts +0 -27
  493. package/dist/codegen-schema-naming.d.ts.map +0 -1
  494. package/dist/codegen-schema-naming.js +0 -150
  495. package/dist/codegen-schema-naming.js.map +0 -1
  496. package/dist/codegen-sdk-model.d.ts +0 -71
  497. package/dist/codegen-sdk-model.d.ts.map +0 -1
  498. package/dist/codegen-sdk-model.js +0 -179
  499. package/dist/codegen-sdk-model.js.map +0 -1
  500. package/dist/codegen.d.ts +0 -187
  501. package/dist/codegen.d.ts.map +0 -1
  502. package/dist/codegen.js +0 -4619
  503. package/dist/codegen.js.map +0 -1
  504. package/dist/context.d.ts +0 -86
  505. package/dist/context.d.ts.map +0 -1
  506. package/dist/context.js +0 -242
  507. package/dist/context.js.map +0 -1
  508. package/dist/cookie-sign.d.ts +0 -17
  509. package/dist/cookie-sign.d.ts.map +0 -1
  510. package/dist/cookie-sign.js +0 -104
  511. package/dist/cookie-sign.js.map +0 -1
  512. package/dist/cookie.d.ts +0 -24
  513. package/dist/cookie.d.ts.map +0 -1
  514. package/dist/cookie.js +0 -138
  515. package/dist/cookie.js.map +0 -1
  516. package/dist/cors.d.ts +0 -14
  517. package/dist/cors.d.ts.map +0 -1
  518. package/dist/cors.js +0 -87
  519. package/dist/cors.js.map +0 -1
  520. package/dist/crypto.d.ts +0 -7
  521. package/dist/crypto.d.ts.map +0 -1
  522. package/dist/crypto.js +0 -38
  523. package/dist/crypto.js.map +0 -1
  524. package/dist/csrf.d.ts +0 -28
  525. package/dist/csrf.d.ts.map +0 -1
  526. package/dist/csrf.js +0 -79
  527. package/dist/csrf.js.map +0 -1
  528. package/dist/curl-logger.d.ts +0 -44
  529. package/dist/curl-logger.d.ts.map +0 -1
  530. package/dist/curl-logger.js +0 -199
  531. package/dist/curl-logger.js.map +0 -1
  532. package/dist/detect-runtime.d.ts +0 -16
  533. package/dist/detect-runtime.d.ts.map +0 -1
  534. package/dist/detect-runtime.js +0 -13
  535. package/dist/detect-runtime.js.map +0 -1
  536. package/dist/dict.d.ts +0 -11
  537. package/dist/dict.d.ts.map +0 -1
  538. package/dist/dict.js +0 -13
  539. package/dist/dict.js.map +0 -1
  540. package/dist/error.d.ts +0 -21
  541. package/dist/error.d.ts.map +0 -1
  542. package/dist/error.js +0 -44
  543. package/dist/error.js.map +0 -1
  544. package/dist/errors.d.ts +0 -40
  545. package/dist/errors.d.ts.map +0 -1
  546. package/dist/errors.js +0 -39
  547. package/dist/errors.js.map +0 -1
  548. package/dist/etag.d.ts +0 -11
  549. package/dist/etag.d.ts.map +0 -1
  550. package/dist/etag.js +0 -82
  551. package/dist/etag.js.map +0 -1
  552. package/dist/feature-detect.d.ts +0 -25
  553. package/dist/feature-detect.d.ts.map +0 -1
  554. package/dist/feature-detect.js +0 -144
  555. package/dist/feature-detect.js.map +0 -1
  556. package/dist/feature-load.d.ts +0 -3
  557. package/dist/feature-load.d.ts.map +0 -1
  558. package/dist/feature-load.js +0 -36
  559. package/dist/feature-load.js.map +0 -1
  560. package/dist/feature-slots.d.ts +0 -44
  561. package/dist/feature-slots.d.ts.map +0 -1
  562. package/dist/feature-slots.js +0 -48
  563. package/dist/feature-slots.js.map +0 -1
  564. package/dist/fetch-request.d.ts +0 -10
  565. package/dist/fetch-request.d.ts.map +0 -1
  566. package/dist/fetch-request.js +0 -13
  567. package/dist/fetch-request.js.map +0 -1
  568. package/dist/gen-process.d.ts +0 -15
  569. package/dist/gen-process.d.ts.map +0 -1
  570. package/dist/gen-process.js +0 -43
  571. package/dist/gen-process.js.map +0 -1
  572. package/dist/gen-write.d.ts +0 -19
  573. package/dist/gen-write.d.ts.map +0 -1
  574. package/dist/gen-write.js +0 -120
  575. package/dist/gen-write.js.map +0 -1
  576. package/dist/glob.d.ts +0 -21
  577. package/dist/glob.d.ts.map +0 -1
  578. package/dist/glob.js +0 -115
  579. package/dist/glob.js.map +0 -1
  580. package/dist/go-type-emitter.d.ts +0 -47
  581. package/dist/go-type-emitter.d.ts.map +0 -1
  582. package/dist/go-type-emitter.js +0 -594
  583. package/dist/go-type-emitter.js.map +0 -1
  584. package/dist/honey-response.d.ts +0 -82
  585. package/dist/honey-response.d.ts.map +0 -1
  586. package/dist/honey-response.js +0 -338
  587. package/dist/honey-response.js.map +0 -1
  588. package/dist/i18n-slot.d.ts +0 -15
  589. package/dist/i18n-slot.d.ts.map +0 -1
  590. package/dist/i18n-slot.js +0 -14
  591. package/dist/i18n-slot.js.map +0 -1
  592. package/dist/i18n.d.ts +0 -29
  593. package/dist/i18n.d.ts.map +0 -1
  594. package/dist/i18n.js +0 -250
  595. package/dist/i18n.js.map +0 -1
  596. package/dist/index.d.ts.map +0 -1
  597. package/dist/index.js.map +0 -1
  598. package/dist/init.d.ts +0 -5
  599. package/dist/init.d.ts.map +0 -1
  600. package/dist/init.js +0 -140
  601. package/dist/init.js.map +0 -1
  602. package/dist/input.d.ts +0 -6
  603. package/dist/input.d.ts.map +0 -1
  604. package/dist/input.js +0 -4
  605. package/dist/input.js.map +0 -1
  606. package/dist/invalidate-check.d.ts +0 -61
  607. package/dist/invalidate-check.d.ts.map +0 -1
  608. package/dist/invalidate-check.js +0 -163
  609. package/dist/invalidate-check.js.map +0 -1
  610. package/dist/invoke-user.d.ts +0 -35
  611. package/dist/invoke-user.d.ts.map +0 -1
  612. package/dist/invoke-user.js +0 -73
  613. package/dist/invoke-user.js.map +0 -1
  614. package/dist/ip-restrict.d.ts +0 -24
  615. package/dist/ip-restrict.d.ts.map +0 -1
  616. package/dist/ip-restrict.js +0 -60
  617. package/dist/ip-restrict.js.map +0 -1
  618. package/dist/ip.d.ts +0 -39
  619. package/dist/ip.d.ts.map +0 -1
  620. package/dist/ip.js +0 -209
  621. package/dist/ip.js.map +0 -1
  622. package/dist/logger.d.ts +0 -45
  623. package/dist/logger.d.ts.map +0 -1
  624. package/dist/logger.js +0 -113
  625. package/dist/logger.js.map +0 -1
  626. package/dist/media-type.d.ts +0 -30
  627. package/dist/media-type.d.ts.map +0 -1
  628. package/dist/media-type.js +0 -97
  629. package/dist/media-type.js.map +0 -1
  630. package/dist/meta-spec-merge.d.ts +0 -32
  631. package/dist/meta-spec-merge.d.ts.map +0 -1
  632. package/dist/meta-spec-merge.js +0 -68
  633. package/dist/meta-spec-merge.js.map +0 -1
  634. package/dist/meta-spec.d.ts +0 -94
  635. package/dist/meta-spec.d.ts.map +0 -1
  636. package/dist/meta-spec.js +0 -535
  637. package/dist/meta-spec.js.map +0 -1
  638. package/dist/middleware.d.ts +0 -77
  639. package/dist/middleware.d.ts.map +0 -1
  640. package/dist/middleware.js +0 -253
  641. package/dist/middleware.js.map +0 -1
  642. package/dist/node-request.d.ts +0 -104
  643. package/dist/node-request.d.ts.map +0 -1
  644. package/dist/node-request.js +0 -407
  645. package/dist/node-request.js.map +0 -1
  646. package/dist/node.d.ts +0 -30
  647. package/dist/node.d.ts.map +0 -1
  648. package/dist/node.js +0 -396
  649. package/dist/node.js.map +0 -1
  650. package/dist/openapi/collect.d.ts.map +0 -1
  651. package/dist/openapi/collect.js.map +0 -1
  652. package/dist/openapi/docs-page.d.ts.map +0 -1
  653. package/dist/openapi/docs-page.js.map +0 -1
  654. package/dist/openapi/document.d.ts.map +0 -1
  655. package/dist/openapi/document.js.map +0 -1
  656. package/dist/openapi/json-schema-slot.d.ts +0 -12
  657. package/dist/openapi/json-schema-slot.d.ts.map +0 -1
  658. package/dist/openapi/json-schema-slot.js +0 -38
  659. package/dist/openapi/json-schema-slot.js.map +0 -1
  660. package/dist/openapi/register.d.ts.map +0 -1
  661. package/dist/openapi/register.js.map +0 -1
  662. package/dist/openapi/scalar.d.ts.map +0 -1
  663. package/dist/openapi/scalar.js.map +0 -1
  664. package/dist/openapi/serve.d.ts.map +0 -1
  665. package/dist/openapi/serve.js.map +0 -1
  666. package/dist/openapi/spec-factory.d.ts +0 -65
  667. package/dist/openapi/spec-factory.d.ts.map +0 -1
  668. package/dist/openapi/spec-factory.js +0 -52
  669. package/dist/openapi/spec-factory.js.map +0 -1
  670. package/dist/openapi/spec.d.ts +0 -29
  671. package/dist/openapi/spec.d.ts.map +0 -1
  672. package/dist/openapi/spec.js +0 -50
  673. package/dist/openapi/spec.js.map +0 -1
  674. package/dist/openapi/swagger.d.ts.map +0 -1
  675. package/dist/openapi/swagger.js.map +0 -1
  676. package/dist/pattern.d.ts +0 -71
  677. package/dist/pattern.d.ts.map +0 -1
  678. package/dist/pattern.js +0 -239
  679. package/dist/pattern.js.map +0 -1
  680. package/dist/peer.d.ts +0 -17
  681. package/dist/peer.d.ts.map +0 -1
  682. package/dist/peer.js +0 -50
  683. package/dist/peer.js.map +0 -1
  684. package/dist/plugin.d.ts +0 -228
  685. package/dist/plugin.d.ts.map +0 -1
  686. package/dist/plugin.js +0 -666
  687. package/dist/plugin.js.map +0 -1
  688. package/dist/powered-by.d.ts +0 -7
  689. package/dist/powered-by.d.ts.map +0 -1
  690. package/dist/powered-by.js +0 -11
  691. package/dist/powered-by.js.map +0 -1
  692. package/dist/pretty-json.d.ts +0 -10
  693. package/dist/pretty-json.d.ts.map +0 -1
  694. package/dist/pretty-json.js +0 -47
  695. package/dist/pretty-json.js.map +0 -1
  696. package/dist/producer-stream.d.ts +0 -47
  697. package/dist/producer-stream.d.ts.map +0 -1
  698. package/dist/producer-stream.js +0 -267
  699. package/dist/producer-stream.js.map +0 -1
  700. package/dist/proxy.d.ts +0 -90
  701. package/dist/proxy.d.ts.map +0 -1
  702. package/dist/proxy.js +0 -274
  703. package/dist/proxy.js.map +0 -1
  704. package/dist/python-type-emitter.d.ts +0 -24
  705. package/dist/python-type-emitter.d.ts.map +0 -1
  706. package/dist/python-type-emitter.js +0 -157
  707. package/dist/python-type-emitter.js.map +0 -1
  708. package/dist/realtime/bus.d.ts.map +0 -1
  709. package/dist/realtime/bus.js.map +0 -1
  710. package/dist/realtime/register.d.ts +0 -3
  711. package/dist/realtime/register.d.ts.map +0 -1
  712. package/dist/realtime/register.js +0 -10
  713. package/dist/realtime/register.js.map +0 -1
  714. package/dist/realtime/route.d.ts.map +0 -1
  715. package/dist/realtime/route.js.map +0 -1
  716. package/dist/realtime/server.d.ts.map +0 -1
  717. package/dist/realtime/server.js.map +0 -1
  718. package/dist/request-id.d.ts +0 -19
  719. package/dist/request-id.d.ts.map +0 -1
  720. package/dist/request-id.js +0 -16
  721. package/dist/request-id.js.map +0 -1
  722. package/dist/request-limits.d.ts +0 -3
  723. package/dist/request-limits.d.ts.map +0 -1
  724. package/dist/request-limits.js +0 -3
  725. package/dist/request-limits.js.map +0 -1
  726. package/dist/request-path.d.ts +0 -33
  727. package/dist/request-path.d.ts.map +0 -1
  728. package/dist/request-path.js +0 -178
  729. package/dist/request-path.js.map +0 -1
  730. package/dist/request-to-curl.d.ts +0 -15
  731. package/dist/request-to-curl.d.ts.map +0 -1
  732. package/dist/request-to-curl.js +0 -48
  733. package/dist/request-to-curl.js.map +0 -1
  734. package/dist/response.d.ts +0 -86
  735. package/dist/response.d.ts.map +0 -1
  736. package/dist/response.js +0 -313
  737. package/dist/response.js.map +0 -1
  738. package/dist/rust-type-emitter.d.ts +0 -44
  739. package/dist/rust-type-emitter.d.ts.map +0 -1
  740. package/dist/rust-type-emitter.js +0 -463
  741. package/dist/rust-type-emitter.js.map +0 -1
  742. package/dist/secure-headers.d.ts +0 -16
  743. package/dist/secure-headers.d.ts.map +0 -1
  744. package/dist/secure-headers.js +0 -53
  745. package/dist/secure-headers.js.map +0 -1
  746. package/dist/serve-register.d.ts +0 -6
  747. package/dist/serve-register.d.ts.map +0 -1
  748. package/dist/serve-register.js +0 -9
  749. package/dist/serve-register.js.map +0 -1
  750. package/dist/serve-slot.d.ts +0 -9
  751. package/dist/serve-slot.d.ts.map +0 -1
  752. package/dist/serve-slot.js +0 -52
  753. package/dist/serve-slot.js.map +0 -1
  754. package/dist/serve.d.ts +0 -38
  755. package/dist/serve.d.ts.map +0 -1
  756. package/dist/serve.js +0 -157
  757. package/dist/serve.js.map +0 -1
  758. package/dist/server-timing.d.ts +0 -9
  759. package/dist/server-timing.d.ts.map +0 -1
  760. package/dist/server-timing.js +0 -51
  761. package/dist/server-timing.js.map +0 -1
  762. package/dist/static.d.ts +0 -21
  763. package/dist/static.d.ts.map +0 -1
  764. package/dist/static.js +0 -102
  765. package/dist/static.js.map +0 -1
  766. package/dist/telemetry/otel.d.ts.map +0 -1
  767. package/dist/telemetry/otel.js.map +0 -1
  768. package/dist/testing.d.ts +0 -36
  769. package/dist/testing.d.ts.map +0 -1
  770. package/dist/testing.js +0 -124
  771. package/dist/testing.js.map +0 -1
  772. package/dist/timeout.d.ts +0 -13
  773. package/dist/timeout.d.ts.map +0 -1
  774. package/dist/timeout.js +0 -36
  775. package/dist/timeout.js.map +0 -1
  776. package/dist/tree.d.ts +0 -193
  777. package/dist/tree.d.ts.map +0 -1
  778. package/dist/tree.js +0 -437
  779. package/dist/tree.js.map +0 -1
  780. package/dist/trust.d.ts +0 -21
  781. package/dist/trust.d.ts.map +0 -1
  782. package/dist/trust.js +0 -100
  783. package/dist/trust.js.map +0 -1
  784. package/dist/ts-type-emitter.d.ts +0 -8
  785. package/dist/ts-type-emitter.d.ts.map +0 -1
  786. package/dist/ts-type-emitter.js +0 -150
  787. package/dist/ts-type-emitter.js.map +0 -1
  788. package/dist/type-emitter.d.ts +0 -36
  789. package/dist/type-emitter.d.ts.map +0 -1
  790. package/dist/type-emitter.js +0 -729
  791. package/dist/type-emitter.js.map +0 -1
  792. package/dist/type-extractor.d.ts +0 -43
  793. package/dist/type-extractor.d.ts.map +0 -1
  794. package/dist/type-extractor.js +0 -819
  795. package/dist/type-extractor.js.map +0 -1
  796. package/dist/types.d.ts +0 -467
  797. package/dist/types.d.ts.map +0 -1
  798. package/dist/types.js +0 -96
  799. package/dist/types.js.map +0 -1
  800. package/dist/validation.d.ts +0 -31
  801. package/dist/validation.d.ts.map +0 -1
  802. package/dist/validation.js +0 -335
  803. package/dist/validation.js.map +0 -1
  804. package/dist/with-headers.d.ts +0 -15
  805. package/dist/with-headers.d.ts.map +0 -1
  806. package/dist/with-headers.js +0 -45
  807. package/dist/with-headers.js.map +0 -1
  808. package/dist/ws/bun.d.ts.map +0 -1
  809. package/dist/ws/bun.js.map +0 -1
  810. package/dist/ws/cloudflare.d.ts.map +0 -1
  811. package/dist/ws/cloudflare.js.map +0 -1
  812. package/dist/ws/deno.d.ts +0 -13
  813. package/dist/ws/deno.d.ts.map +0 -1
  814. package/dist/ws/deno.js +0 -133
  815. package/dist/ws/deno.js.map +0 -1
  816. package/dist/ws/node.d.ts.map +0 -1
  817. package/dist/ws/node.js.map +0 -1
  818. package/dist/ws/session.d.ts.map +0 -1
  819. package/dist/ws/session.js.map +0 -1
  820. package/dist/ws/shared.d.ts.map +0 -1
  821. package/dist/ws/shared.js.map +0 -1
  822. package/dist/ws-origin.d.ts +0 -20
  823. package/dist/ws-origin.d.ts.map +0 -1
  824. package/dist/ws-origin.js +0 -41
  825. package/dist/ws-origin.js.map +0 -1
  826. package/dist/yaml.d.ts +0 -18
  827. package/dist/yaml.d.ts.map +0 -1
  828. package/dist/yaml.js +0 -101
  829. package/dist/yaml.js.map +0 -1
  830. package/docs/api-ref/go.md +0 -399
  831. package/docs/api-ref/python.md +0 -399
  832. package/docs/api-ref/rust.md +0 -399
  833. package/docs/api-ref/typescript.md +0 -399
  834. package/docs/invalidate-spec.md +0 -333
  835. package/docs/meta-spec.md +0 -555
  836. package/docs/packaging.md +0 -104
  837. package/docs/regression-matrix/README.md +0 -32
  838. package/docs/regression-matrix/review.md +0 -44
  839. package/docs/regression-matrix/ws1-3.md +0 -97
  840. package/docs/regression-matrix/ws4-8.md +0 -107
  841. package/docs/regression-matrix/ws9-12.md +0 -266
  842. package/docs/sdk.md +0 -798
  843. package/src/accepts.ts +0 -136
  844. package/src/body-kind.ts +0 -67
  845. package/src/body-limit.ts +0 -152
  846. package/src/build/index.ts +0 -217
  847. package/src/cli-args.ts +0 -123
  848. package/src/cli-go/auth.go +0 -26
  849. package/src/cli-go/config.go +0 -192
  850. package/src/cli-go/errors.go +0 -75
  851. package/src/cli-go/multipart.go +0 -79
  852. package/src/cli-go/output.go +0 -163
  853. package/src/cli-go/root.go +0 -30
  854. package/src/cli-go/stream.go +0 -88
  855. package/src/cli-go/version.go +0 -5
  856. package/src/cli.ts +0 -209
  857. package/src/client/defaults.ts +0 -47
  858. package/src/client/error.ts +0 -82
  859. package/src/client/http.ts +0 -737
  860. package/src/client/index.ts +0 -157
  861. package/src/client/path.ts +0 -169
  862. package/src/client/redirect-policy.ts +0 -19
  863. package/src/client/sdk.ts +0 -351
  864. package/src/client/sse.ts +0 -128
  865. package/src/client/types.ts +0 -206
  866. package/src/client/ws.ts +0 -149
  867. package/src/client-go/errors.go +0 -236
  868. package/src/client-go/export.go +0 -44
  869. package/src/client-go/invalidation.go +0 -371
  870. package/src/client-go/nullable.go +0 -62
  871. package/src/client-go/realtime.go +0 -354
  872. package/src/client-go/result.go +0 -20
  873. package/src/client-go/runtime.go +0 -975
  874. package/src/client-go/sse.go +0 -159
  875. package/src/client-go/transport.go +0 -495
  876. package/src/client-go/ws.go +0 -128
  877. package/src/client-info.ts +0 -79
  878. package/src/client-mcp/README.md +0 -10
  879. package/src/client-mcp/server.ts +0 -221
  880. package/src/client-mcp/types.ts +0 -19
  881. package/src/client-python/_errors.py +0 -115
  882. package/src/client-python/_invalidation.py +0 -494
  883. package/src/client-python/_realtime.py +0 -179
  884. package/src/client-python/_runtime.py +0 -860
  885. package/src/client-python/_sse.py +0 -155
  886. package/src/client-python/_transport.py +0 -366
  887. package/src/client-python/_ws.py +0 -159
  888. package/src/client-python/py.typed +0 -0
  889. package/src/client-rust/errors.rs +0 -220
  890. package/src/client-rust/invalidation.rs +0 -412
  891. package/src/client-rust/invalidation_sync.rs +0 -93
  892. package/src/client-rust/nullable.rs +0 -17
  893. package/src/client-rust/realtime.rs +0 -702
  894. package/src/client-rust/result.rs +0 -22
  895. package/src/client-rust/runtime.rs +0 -980
  896. package/src/client-rust/runtime_sync.rs +0 -484
  897. package/src/client-rust/sse.rs +0 -188
  898. package/src/client-rust/ws.rs +0 -167
  899. package/src/codegen-go-cli.ts +0 -1066
  900. package/src/codegen-go.ts +0 -970
  901. package/src/codegen-hash.ts +0 -8
  902. package/src/codegen-ir.ts +0 -812
  903. package/src/codegen-lang.ts +0 -517
  904. package/src/codegen-load.ts +0 -150
  905. package/src/codegen-loaders.ts +0 -50
  906. package/src/codegen-mcp.ts +0 -445
  907. package/src/codegen-python.ts +0 -916
  908. package/src/codegen-route-tree-intern.ts +0 -198
  909. package/src/codegen-rust.ts +0 -1402
  910. package/src/codegen-sanitize.ts +0 -57
  911. package/src/codegen-schema-naming.ts +0 -165
  912. package/src/codegen-sdk-model.ts +0 -228
  913. package/src/codegen.ts +0 -5089
  914. package/src/context.ts +0 -325
  915. package/src/cookie-sign.ts +0 -119
  916. package/src/cookie.ts +0 -143
  917. package/src/cors.ts +0 -95
  918. package/src/crypto.ts +0 -38
  919. package/src/csrf.ts +0 -86
  920. package/src/curl-logger.ts +0 -258
  921. package/src/detect-runtime.ts +0 -17
  922. package/src/dict.ts +0 -12
  923. package/src/error.ts +0 -55
  924. package/src/errors.ts +0 -85
  925. package/src/etag.ts +0 -97
  926. package/src/feature-detect.ts +0 -147
  927. package/src/feature-load.ts +0 -23
  928. package/src/feature-slots.ts +0 -70
  929. package/src/fetch-request.ts +0 -13
  930. package/src/gen-process.ts +0 -42
  931. package/src/gen-write.ts +0 -127
  932. package/src/glob.ts +0 -109
  933. package/src/go-type-emitter.ts +0 -660
  934. package/src/honey-response.ts +0 -379
  935. package/src/i18n-slot.ts +0 -30
  936. package/src/i18n.ts +0 -300
  937. package/src/index.ts +0 -3829
  938. package/src/init.ts +0 -161
  939. package/src/input.ts +0 -8
  940. package/src/invalidate-check.ts +0 -205
  941. package/src/invoke-user.ts +0 -95
  942. package/src/ip-restrict.ts +0 -79
  943. package/src/ip.ts +0 -194
  944. package/src/logger.ts +0 -178
  945. package/src/media-type.ts +0 -104
  946. package/src/meta-spec-merge.ts +0 -80
  947. package/src/meta-spec.ts +0 -718
  948. package/src/middleware.ts +0 -331
  949. package/src/node-request.ts +0 -431
  950. package/src/node.ts +0 -454
  951. package/src/openapi/collect.ts +0 -50
  952. package/src/openapi/docs-page.ts +0 -89
  953. package/src/openapi/document.ts +0 -893
  954. package/src/openapi/json-schema-slot.ts +0 -53
  955. package/src/openapi/register.ts +0 -23
  956. package/src/openapi/scalar.ts +0 -34
  957. package/src/openapi/serve.ts +0 -39
  958. package/src/openapi/spec-factory.ts +0 -100
  959. package/src/openapi/spec.ts +0 -74
  960. package/src/openapi/swagger.ts +0 -35
  961. package/src/pattern.ts +0 -245
  962. package/src/peer.ts +0 -53
  963. package/src/plugin.ts +0 -864
  964. package/src/powered-by.ts +0 -18
  965. package/src/pretty-json.ts +0 -56
  966. package/src/producer-stream.ts +0 -296
  967. package/src/proxy.ts +0 -370
  968. package/src/python-type-emitter.ts +0 -181
  969. package/src/realtime/bus.ts +0 -140
  970. package/src/realtime/register.ts +0 -13
  971. package/src/realtime/route.ts +0 -153
  972. package/src/realtime/server.ts +0 -298
  973. package/src/request-id.ts +0 -32
  974. package/src/request-limits.ts +0 -2
  975. package/src/request-path.ts +0 -165
  976. package/src/request-to-curl.ts +0 -52
  977. package/src/response.ts +0 -411
  978. package/src/rust-type-emitter.ts +0 -548
  979. package/src/secure-headers.ts +0 -74
  980. package/src/serve-register.ts +0 -12
  981. package/src/serve-slot.ts +0 -58
  982. package/src/serve.ts +0 -220
  983. package/src/server-timing.ts +0 -71
  984. package/src/static.ts +0 -112
  985. package/src/telemetry/otel.ts +0 -156
  986. package/src/testing.ts +0 -167
  987. package/src/timeout.ts +0 -45
  988. package/src/tree.ts +0 -554
  989. package/src/trust.ts +0 -117
  990. package/src/ts-type-emitter.ts +0 -168
  991. package/src/type-emitter.ts +0 -760
  992. package/src/type-extractor.ts +0 -855
  993. package/src/types.ts +0 -756
  994. package/src/validation.ts +0 -413
  995. package/src/with-headers.ts +0 -45
  996. package/src/ws/bun.ts +0 -120
  997. package/src/ws/cloudflare.ts +0 -192
  998. package/src/ws/deno.ts +0 -188
  999. package/src/ws/node.ts +0 -240
  1000. package/src/ws/session.ts +0 -73
  1001. package/src/ws/shared.ts +0 -140
  1002. package/src/ws-origin.ts +0 -53
  1003. package/src/yaml.ts +0 -103
@@ -1,192 +0,0 @@
1
- import "./session.ts"
2
- import { invokeUser } from "../invoke-user.ts"
3
- import { truncateUtf8 } from "../realtime/route.ts"
4
- import type { WSReadyState } from "../types.ts"
5
- import {
6
- bufferedAmountOf,
7
- CLOSE_TOO_BIG,
8
- CLOSE_TRY_AGAIN,
9
- exceedsPayload,
10
- MAX_CLOSE_REASON,
11
- type ResolvedWSOptions,
12
- resolveWSOptions,
13
- selectProtocol,
14
- sendableCloseCode,
15
- type WSAdapterOptions,
16
- } from "./shared.ts"
17
-
18
- export type { WSAdapterOptions } from "./shared.ts"
19
-
20
- export const WS_SEND_BUFFER_MAX = 32
21
-
22
- export type WSContext<T = unknown> = {
23
- /** Outbound bytes the runtime holds unsent, when it reports them (0 otherwise). Adapters' sockets have it; a hand-written stub may not. */
24
- readonly bufferedAmount?: number
25
- /** Close the connection. A reason longer than 123 UTF-8 bytes is cut to fit. */
26
- close(code?: number, reason?: string): void
27
- raw: T
28
- readyState: WSReadyState
29
- /**
30
- * Send a message; objects are sent as JSON. While the socket is still opening, up to 32
31
- * messages wait for it; after it closed they are dropped. Over the adapter's backpressure
32
- * limit the adapter's policy applies (close with 1013, or drop).
33
- */
34
- send(data: ArrayBuffer | Uint8Array | object | string): void
35
- }
36
-
37
- export type WSHandler<TCtx = unknown> = {
38
- onClose?(ctx: TCtx, ws: WSContext, code: number, reason: string): Promise<void> | void
39
- onError?(ctx: TCtx, ws: WSContext, error: unknown): Promise<void> | void
40
- onMessage?(ctx: TCtx, ws: WSContext, data: ArrayBuffer | string): Promise<void> | void
41
- onOpen?(ctx: TCtx, ws: WSContext): Promise<void> | void
42
- onReconnect?(ctx: TCtx, ws: WSContext, token: string): Promise<void> | void
43
- }
44
-
45
- export type WSPreUpgrade = {
46
- response: Response
47
- socket: WSContext
48
- /** Run `fn` now if the socket is already open, otherwise on the next open. */
49
- whenOpen(fn: () => void): void
50
- }
51
-
52
- export type WSAdapter = {
53
- upgrade(
54
- req: Request,
55
- env: unknown,
56
- handler: WSHandler<unknown>,
57
- ): Promise<{ response: Response; socket: WSContext }> | { response: Response; socket: WSContext }
58
- /**
59
- * Deno requires `Deno.upgradeWebSocket` in the same turn as the serve
60
- * callback. When present, Honey calls this synchronously from `fetch`
61
- * and returns `response` before any middleware Promise.
62
- */
63
- preUpgrade?(req: Request): WSPreUpgrade | undefined
64
- /** Close every open connection (graceful shutdown). */
65
- closeAll?(code: number, reason: string): void
66
- /** The adapter's resolved options. */
67
- readonly options?: ResolvedWSOptions
68
- }
69
-
70
- export type RawSocket = {
71
- close(code?: number, reason?: string): void
72
- readyState: number
73
- send(data: ArrayBuffer | Uint8Array | string): void
74
- }
75
-
76
- export class WSContextImpl<T extends RawSocket = RawSocket> implements WSContext<T> {
77
- raw: T
78
- private sendBuffer: Array<ArrayBuffer | Uint8Array | string> = []
79
- private readonly limits: Pick<ResolvedWSOptions, "backpressureLimit" | "backpressurePolicy"> | null
80
-
81
- constructor(raw: T, opts?: Pick<ResolvedWSOptions, "backpressureLimit" | "backpressurePolicy">) {
82
- this.raw = raw
83
- this.limits = opts ?? null
84
- const target = raw as T & { addEventListener?(type: string, listener: () => void): void }
85
- if (raw.readyState !== 1 && typeof target.addEventListener === "function") {
86
- target.addEventListener("open", () => this.flush())
87
- }
88
- }
89
-
90
- get bufferedAmount(): number {
91
- return bufferedAmountOf(this.raw)
92
- }
93
-
94
- get readyState(): WSReadyState {
95
- return this.raw.readyState as WSReadyState
96
- }
97
-
98
- /** Send what was queued while the socket was opening (adapters without an `open` event call this). */
99
- flush(): void {
100
- const queued = this.sendBuffer
101
- this.sendBuffer = []
102
- for (const msg of queued) this.send(msg)
103
- }
104
-
105
- close(code?: number, reason?: string): void {
106
- this.sendBuffer = []
107
- this.raw.close(code, reason === undefined ? undefined : truncateUtf8(reason, MAX_CLOSE_REASON))
108
- }
109
-
110
- send(data: ArrayBuffer | Uint8Array | object | string): void {
111
- const payload =
112
- typeof data === "string" || data instanceof ArrayBuffer || data instanceof Uint8Array
113
- ? data
114
- : JSON.stringify(data)
115
- const state = this.raw.readyState
116
- if (state === 1) {
117
- const limits = this.limits
118
- if (limits !== null && limits.backpressureLimit > 0 && this.bufferedAmount > limits.backpressureLimit) {
119
- if (limits.backpressurePolicy === "close") this.close(CLOSE_TRY_AGAIN, "slow consumer")
120
- return
121
- }
122
- this.raw.send(payload)
123
- return
124
- }
125
- /* closing or closed: nothing will ever send it */
126
- if (state !== 0) return
127
- if (this.sendBuffer.length >= WS_SEND_BUFFER_MAX) this.sendBuffer.shift()
128
- this.sendBuffer.push(payload)
129
- }
130
- }
131
-
132
- /** Call an adapter event on the handler; whatever it throws is logged, never thrown into the runtime. */
133
- export function fireHandler(phase: string, fn: () => unknown): void {
134
- void invokeUser(fn, { phase: `websocket ${phase}` })
135
- }
136
-
137
- /**
138
- * Cloudflare Workers WebSocket adapter.
139
- * Uses WebSocketPair + server.accept() + addEventListener. `idleTimeout` is not enforced:
140
- * Workers has no ping API and evicts idle sockets itself.
141
- */
142
- export function cfWebSocket(opts?: WSAdapterOptions): WSAdapter {
143
- const options = resolveWSOptions(opts)
144
- return {
145
- options,
146
- upgrade(req: Request, _env: unknown, handler: WSHandler<unknown>) {
147
- type CFWebSocket = RawSocket & { accept(): void }
148
- const Ctor = (globalThis as Record<string, unknown>)["WebSocketPair"] as new () => [CFWebSocket, CFWebSocket]
149
- const [client, server] = new Ctor()
150
- server.accept()
151
- const socket = new WSContextImpl(server, options)
152
-
153
- const raw = server as unknown as EventTarget & RawSocket
154
- if ("addEventListener" in raw) {
155
- raw.addEventListener("message", (evt: Event) => {
156
- const data = (evt as MessageEvent).data as ArrayBuffer | string
157
- if (exceedsPayload(data, options.maxPayload)) {
158
- socket.close(CLOSE_TOO_BIG, "message too big")
159
- return
160
- }
161
- fireHandler("message", () => handler.onMessage?.(undefined, socket, data))
162
- })
163
- raw.addEventListener("close", (evt: Event) => {
164
- const closeEvt = evt as CloseEvent
165
- fireHandler("close", () => handler.onClose?.(undefined, socket, closeEvt.code, closeEvt.reason))
166
- /* echo the close frame so the client's handshake completes; 1005 and 1006 are never sent */
167
- try {
168
- server.close(sendableCloseCode(closeEvt.code), closeEvt.reason)
169
- } catch {
170
- /* already closed */
171
- }
172
- })
173
- raw.addEventListener("error", (evt: Event) => {
174
- fireHandler("error", () => handler.onError?.(undefined, socket, evt))
175
- })
176
- }
177
- fireHandler("open", () => handler.onOpen?.(undefined, socket))
178
-
179
- const headers: Record<string, string> = { upgrade: "websocket" }
180
- const protocol = selectProtocol(req, options)
181
- if (protocol !== null) headers["sec-websocket-protocol"] = protocol
182
- return {
183
- response: new Response(null, {
184
- headers,
185
- status: 101,
186
- webSocket: client,
187
- } as unknown as ResponseInit),
188
- socket,
189
- }
190
- },
191
- }
192
- }
package/src/ws/deno.ts DELETED
@@ -1,188 +0,0 @@
1
- export {
2
- type RawSocket,
3
- type WSAdapter,
4
- type WSAdapterOptions,
5
- type WSContext,
6
- type WSPreUpgrade,
7
- WSContextImpl,
8
- type WSHandler,
9
- } from "./cloudflare.ts"
10
-
11
- import type { WSAdapter, WSHandler, WSPreUpgrade } from "./cloudflare.ts"
12
- import { fireHandler, WSContextImpl } from "./cloudflare.ts"
13
- import {
14
- CLOSE_POLICY,
15
- CLOSE_TOO_BIG,
16
- exceedsPayload,
17
- type ResolvedWSOptions,
18
- resolveWSOptions,
19
- selectProtocol,
20
- type WSAdapterOptions,
21
- } from "./shared.ts"
22
-
23
- type DenoUpgradeOptions = { idleTimeout?: number; protocol?: string }
24
-
25
- type DenoNs = {
26
- Deno: {
27
- upgradeWebSocket(
28
- req: Request,
29
- opts?: DenoUpgradeOptions,
30
- ): {
31
- response: Response
32
- socket: DenoSocket
33
- }
34
- }
35
- }
36
-
37
- type DenoRawSocket = {
38
- binaryType: string
39
- bufferedAmount: number
40
- close(code?: number, reason?: string): void
41
- readyState: number
42
- send(data: ArrayBuffer | Uint8Array | string): void
43
- }
44
-
45
- type DenoSocket = {
46
- addEventListener(type: string, listener: (...args: never[]) => void): void
47
- } & DenoRawSocket
48
-
49
- /** Events that arrive before the route's handler is bound (the `preUpgrade` path). */
50
- const EARLY_EVENTS_MAX = 64
51
-
52
- type DenoEvent =
53
- | { data: ArrayBuffer | string; type: "message" }
54
- | { code: number; reason: string; type: "close" }
55
- | { error: unknown; type: "error" }
56
- | { type: "open" }
57
-
58
- /**
59
- * Listen on a Deno socket right away and deliver events to a handler bound later. Until then up
60
- * to 64 events wait (frames the client sends between the 101 and the end of the middleware
61
- * chain); more close the connection with 1008.
62
- */
63
- function listen(raw: DenoSocket, socket: WSContextImpl<DenoRawSocket>, options: ResolvedWSOptions) {
64
- let handler: WSHandler<unknown> | null = null
65
- let early: DenoEvent[] | null = []
66
-
67
- const deliver = (evt: DenoEvent, h: WSHandler<unknown>): void => {
68
- switch (evt.type) {
69
- case "open":
70
- fireHandler("open", () => h.onOpen?.(undefined, socket))
71
- return
72
- case "message":
73
- fireHandler("message", () => h.onMessage?.(undefined, socket, evt.data))
74
- return
75
- case "close":
76
- fireHandler("close", () => h.onClose?.(undefined, socket, evt.code, evt.reason))
77
- return
78
- case "error":
79
- fireHandler("error", () => h.onError?.(undefined, socket, evt.error))
80
- }
81
- }
82
-
83
- const push = (evt: DenoEvent): void => {
84
- if (handler !== null) {
85
- deliver(evt, handler)
86
- return
87
- }
88
- if (early === null) return
89
- if (early.length >= EARLY_EVENTS_MAX && evt.type === "message") {
90
- early = null
91
- socket.close(CLOSE_POLICY, "too many messages before the handler was ready")
92
- return
93
- }
94
- early.push(evt)
95
- }
96
-
97
- raw.addEventListener("open", () => push({ type: "open" }))
98
- raw.addEventListener("message", (evt: { data: ArrayBuffer | string }) => {
99
- if (exceedsPayload(evt.data, options.maxPayload)) {
100
- socket.close(CLOSE_TOO_BIG, "message too big")
101
- return
102
- }
103
- push({ data: evt.data, type: "message" })
104
- })
105
- raw.addEventListener("close", (evt: { code: number; reason: string }) =>
106
- push({ code: evt.code, reason: evt.reason, type: "close" }),
107
- )
108
- raw.addEventListener("error", (evt: unknown) => push({ error: evt, type: "error" }))
109
-
110
- return {
111
- bind(h: WSHandler<unknown>): void {
112
- handler = h
113
- const queued = early ?? []
114
- early = null
115
- for (const evt of queued) deliver(evt, h)
116
- },
117
- }
118
- }
119
-
120
- /**
121
- * Deno WebSocket adapter.
122
- * Uses Deno.upgradeWebSocket() and addEventListener for event binding.
123
- * Deno pings idle sockets itself (`idleTimeout`, whole seconds); there is no `keepalive` option.
124
- *
125
- * `preUpgrade` calls `Deno.upgradeWebSocket` in the same turn as the serve
126
- * callback (Deno rejects upgrades performed after the first await).
127
- */
128
- export function denoWebSocket(opts?: WSAdapterOptions): WSAdapter {
129
- const options = resolveWSOptions(opts)
130
- const pending = new WeakMap<Request, { bind(h: WSHandler<unknown>): void; pre: WSPreUpgrade }>()
131
- const open = new Set<WSContextImpl<DenoRawSocket>>()
132
-
133
- const start = (req: Request) => {
134
- const denoNs = globalThis as unknown as DenoNs
135
- const protocol = selectProtocol(req, options)
136
- const upgradeOpts: DenoUpgradeOptions = {}
137
- if (protocol !== null) upgradeOpts.protocol = protocol
138
- if (options.idleTimeout > 0) upgradeOpts.idleTimeout = Math.max(Math.ceil(options.idleTimeout / 1000), 1)
139
- const { response, socket: rawSocket } = denoNs.Deno.upgradeWebSocket(req, upgradeOpts)
140
- /* binary frames arrive as ArrayBuffer, as on every other runtime (Deno's default is Blob) */
141
- rawSocket.binaryType = "arraybuffer"
142
- const socket = new WSContextImpl(rawSocket as DenoRawSocket, options)
143
- open.add(socket)
144
- rawSocket.addEventListener("close", () => open.delete(socket))
145
- const listener = listen(rawSocket, socket, options)
146
- return { listener, rawSocket, response, socket }
147
- }
148
-
149
- return {
150
- closeAll(code: number, reason: string) {
151
- for (const socket of open) {
152
- try {
153
- socket.close(code, reason)
154
- } catch {
155
- /* already closing */
156
- }
157
- }
158
- },
159
- options,
160
- preUpgrade(req: Request): WSPreUpgrade {
161
- const { listener, rawSocket, response, socket } = start(req)
162
- const pre: WSPreUpgrade = {
163
- response,
164
- socket,
165
- whenOpen(fn: () => void) {
166
- if (rawSocket.readyState === 1) {
167
- fn()
168
- return
169
- }
170
- rawSocket.addEventListener("open", () => fn())
171
- },
172
- }
173
- pending.set(req, { bind: listener.bind, pre })
174
- return pre
175
- },
176
- upgrade(req: Request, _env: unknown, handler: WSHandler<unknown>) {
177
- const held = pending.get(req)
178
- if (held) {
179
- pending.delete(req)
180
- held.bind(handler)
181
- return held.pre
182
- }
183
- const { listener, response, socket } = start(req)
184
- listener.bind(handler)
185
- return { response, socket }
186
- },
187
- }
188
- }
package/src/ws/node.ts DELETED
@@ -1,240 +0,0 @@
1
- export {
2
- type RawSocket,
3
- type WSAdapter,
4
- type WSAdapterOptions,
5
- type WSContext,
6
- WSContextImpl,
7
- type WSHandler,
8
- } from "./cloudflare.ts"
9
-
10
- import type { WSAdapter, WSHandler } from "./cloudflare.ts"
11
- import { fireHandler, WSContextImpl } from "./cloudflare.ts"
12
- import {
13
- type ResolvedWSOptions,
14
- resolveWSOptions,
15
- selectProtocol,
16
- toArrayBuffer,
17
- type WSAdapterOptions,
18
- } from "./shared.ts"
19
-
20
- type WebSocketServerOptions = {
21
- handleProtocols?: (protocols: Set<string>, req: unknown) => string | false
22
- maxPayload: number
23
- noServer: true
24
- perMessageDeflate: boolean
25
- }
26
-
27
- type WsModule = {
28
- WebSocketServer: new (opts: WebSocketServerOptions) => WssInstance
29
- }
30
-
31
- type NodeWS = {
32
- binaryType: string
33
- bufferedAmount: number
34
- close(code?: number, reason?: string): void
35
- on(event: "close", cb: (code: number, reason: Buffer) => void): void
36
- on(event: "error", cb: (err: unknown) => void): void
37
- on(event: "message", cb: (data: ArrayBuffer | Buffer | Buffer[], isBinary: boolean) => void): void
38
- on(event: "pong" | "ping", cb: () => void): void
39
- ping(): void
40
- readyState: number
41
- send(data: ArrayBuffer | Buffer | Uint8Array | string): void
42
- terminate(): void
43
- }
44
-
45
- /**
46
- * What the Node adapter (`serve()`) puts on `env.__nodeUpgrade`. `upgraded` turns true once the
47
- * 101 is written: from then on the socket belongs to `ws`, and the adapter must not write to it.
48
- */
49
- export type NodeUpgradeData = {
50
- head: Buffer
51
- req: unknown
52
- socket: unknown
53
- upgraded: boolean
54
- }
55
-
56
- type WssInstance = {
57
- handleUpgrade(req: unknown, socket: unknown, head: unknown, cb: (ws: NodeWS) => void): void
58
- }
59
-
60
- type KeepaliveConfig = {
61
- interval: number
62
- timeout: number
63
- }
64
-
65
- export type NodeWebSocketOptions = WSAdapterOptions & {
66
- /** Ping every `interval` ms; a pong missing after `timeout` ms terminates the connection. */
67
- keepalive?: KeepaliveConfig
68
- }
69
-
70
- const WS_MISSING =
71
- 'WebSocket routes on Node need the "ws" package, which is an optional peer dependency of honey. Install it: npm install ws'
72
-
73
- /**
74
- * Node.js WebSocket adapter, on the `ws` package (an optional peer dependency). It reads
75
- * `env.__nodeUpgrade`, which honey's `serve()` puts there for an upgrade request.
76
- */
77
- export function nodeWebSocket(opts?: NodeWebSocketOptions): WSAdapter {
78
- const options: ResolvedWSOptions = resolveWSOptions(opts)
79
- const keepalive = opts?.keepalive
80
- if (keepalive !== undefined && !(keepalive.interval > 0 && keepalive.timeout > 0)) {
81
- throw new TypeError("nodeWebSocket: keepalive.interval and keepalive.timeout must be positive")
82
- }
83
- let wss: WssInstance | null = null
84
- let wssReady: Promise<WssInstance> | null = null
85
- const open = new Set<NodeWS>()
86
- /* the Request being upgraded, for the protocol callback (ws hands it the IncomingMessage) */
87
- let upgrading: Request | null = null
88
-
89
- const ensureWss = (): Promise<WssInstance> => {
90
- if (wss) return Promise.resolve(wss)
91
- if (!wssReady) {
92
- wssReady = import("ws").then(
93
- (mod) => {
94
- const wsModule = mod as unknown as WsModule
95
- wss = new wsModule.WebSocketServer({
96
- handleProtocols: (protocols) => {
97
- if (protocols.size === 0 || upgrading === null) return false
98
- return selectProtocol(upgrading, options) ?? false
99
- },
100
- maxPayload: options.maxPayload,
101
- noServer: true,
102
- perMessageDeflate: false,
103
- })
104
- return wss
105
- },
106
- (err: unknown) => {
107
- /* not cached: installing ws later works without a restart */
108
- wssReady = null
109
- throw new Error(WS_MISSING, { cause: err })
110
- },
111
- )
112
- }
113
- return wssReady
114
- }
115
-
116
- const watch = (ws: NodeWS): void => {
117
- let pingTimer: ReturnType<typeof setInterval> | undefined
118
- let pongTimeout: ReturnType<typeof setTimeout> | undefined
119
- let idleTimer: ReturnType<typeof setInterval> | undefined
120
- let lastSeen = Date.now()
121
- const seen = (): void => {
122
- lastSeen = Date.now()
123
- }
124
-
125
- ws.on("pong", () => {
126
- seen()
127
- if (pongTimeout !== undefined) {
128
- clearTimeout(pongTimeout)
129
- pongTimeout = undefined
130
- }
131
- })
132
- ws.on("ping", seen)
133
-
134
- if (keepalive) {
135
- pingTimer = setInterval(() => {
136
- if (ws.readyState !== 1) return
137
- /* one pong outstanding at a time: a slow pong must not stack timers */
138
- if (pongTimeout !== undefined) return
139
- ws.ping()
140
- pongTimeout = setTimeout(() => ws.terminate(), keepalive.timeout)
141
- }, keepalive.interval)
142
- }
143
-
144
- const idle = options.idleTimeout
145
- if (idle > 0) {
146
- const tick = Math.max(Math.floor(idle / 2), 1)
147
- idleTimer = setInterval(() => {
148
- if (ws.readyState !== 1) return
149
- const quiet = Date.now() - lastSeen
150
- if (quiet >= idle) ws.terminate()
151
- else if (quiet >= tick) ws.ping()
152
- }, tick)
153
- }
154
-
155
- const stop = (): void => {
156
- if (pingTimer !== undefined) clearInterval(pingTimer)
157
- if (pongTimeout !== undefined) clearTimeout(pongTimeout)
158
- if (idleTimer !== undefined) clearInterval(idleTimer)
159
- pingTimer = pongTimeout = idleTimer = undefined
160
- }
161
- ws.on("close", stop)
162
- ws.on("error", stop)
163
- }
164
-
165
- return {
166
- closeAll(code: number, reason: string) {
167
- for (const ws of open) {
168
- try {
169
- ws.close(code, reason)
170
- } catch {
171
- ws.terminate()
172
- }
173
- }
174
- },
175
- options,
176
- async upgrade(req: Request, env: unknown, handler: WSHandler<unknown>) {
177
- const server = await ensureWss()
178
- const upgrade = (env as Record<string, unknown>).__nodeUpgrade as NodeUpgradeData | undefined
179
- if (upgrade === undefined) {
180
- throw new Error("nodeWebSocket: no upgrade socket; serve the app with honey's serve() on Node")
181
- }
182
-
183
- return new Promise((resolve, reject) => {
184
- /* ws answers a malformed handshake itself and never calls back: fail instead of hanging */
185
- const sock = upgrade.socket as { once?(event: "close", cb: () => void): void }
186
- sock.once?.("close", () => {
187
- if (!upgrade.upgraded) reject(new Error("WebSocket handshake failed"))
188
- })
189
- upgrading = req
190
- try {
191
- server.handleUpgrade(upgrade.req, upgrade.socket, upgrade.head, (ws: NodeWS) => {
192
- upgrade.upgraded = true
193
- ws.binaryType = "arraybuffer"
194
- open.add(ws)
195
- const socket = new WSContextImpl(ws, options)
196
-
197
- ws.on("message", (data: ArrayBuffer | Buffer | Buffer[], isBinary: boolean) => {
198
- let payload: ArrayBuffer | string
199
- if (!isBinary) {
200
- /* text frame: a string, as on every other runtime */
201
- payload = Buffer.isBuffer(data)
202
- ? data.toString("utf-8")
203
- : data instanceof ArrayBuffer
204
- ? Buffer.from(data).toString("utf-8")
205
- : Buffer.concat(data).toString("utf-8")
206
- } else if (data instanceof ArrayBuffer) {
207
- payload = data
208
- } else {
209
- payload = toArrayBuffer(Array.isArray(data) ? Buffer.concat(data) : data)
210
- }
211
- fireHandler("message", () => handler.onMessage?.(undefined, socket, payload))
212
- })
213
- watch(ws)
214
-
215
- ws.on("close", (code: number, reason: Buffer) => {
216
- open.delete(ws)
217
- fireHandler("close", () => handler.onClose?.(undefined, socket, code, reason.toString()))
218
- })
219
-
220
- ws.on("error", (err: unknown) => {
221
- fireHandler("error", () => handler.onError?.(undefined, socket, err))
222
- })
223
-
224
- fireHandler("open", () => handler.onOpen?.(undefined, socket))
225
-
226
- /* Node's Response rejects status 101 (Fetch spec: 200-599 only).
227
- Create a valid Response and override status for the sentinel check. */
228
- const resp = new Response(null)
229
- Object.defineProperty(resp, "status", { value: 101 })
230
- resolve({ response: resp, socket })
231
- })
232
- } catch (err) {
233
- reject(err)
234
- } finally {
235
- upgrading = null
236
- }
237
- })
238
- },
239
- }
240
- }
package/src/ws/session.ts DELETED
@@ -1,73 +0,0 @@
1
- /**
2
- * The server side of one websocket route connection: the user's callbacks run on one ordered
3
- * queue (open, then messages, then close), each contained, with a cap on waiting messages.
4
- * Every honey adapter imports this module, which registers it, so the core never bundles it
5
- * for an app without websockets.
6
- */
7
- import { registerFeature } from "../feature-slots.ts"
8
- import { createEventQueue, invokeUser, type InvokeLogger } from "../invoke-user.ts"
9
- import { originAllowed } from "../ws-origin.ts"
10
- import type { WSContext, WSHandler } from "./cloudflare.ts"
11
-
12
- /** Messages one websocket connection may have waiting for its handler; more close it with 1008. */
13
- const WS_PENDING_MAX = 1024
14
-
15
- /** `callbacks` are the route's own; each receives the route's request context `ctx` first. */
16
- export function createWsSession(opts: {
17
- callbacks: WSHandler<unknown>
18
- ctx: unknown
19
- log: InvokeLogger | null
20
- reconnectToken: string | null
21
- route: string
22
- }): WSHandler<unknown> {
23
- const { callbacks, ctx, log, reconnectToken, route } = opts
24
- const { onClose, onError, onMessage, onOpen, onReconnect } = callbacks
25
- const queue = createEventQueue()
26
- let pending = 0
27
-
28
- const run = (phase: string, ws: WSContext, fn: () => unknown): Promise<unknown> =>
29
- invokeUser(fn, {
30
- fields: { route },
31
- log,
32
- onError: onError ? (err) => onError(ctx, ws, err) : null,
33
- phase: `websocket ${phase}`,
34
- })
35
-
36
- return {
37
- onClose: (_ctx, ws, code, reason) => {
38
- if (onClose) void queue.push(() => run("close", ws, () => onClose(ctx, ws, code, reason)))
39
- },
40
- /* a transport error: tell onError once; if onError throws, that is logged */
41
- onError: (_ctx, ws, error) => {
42
- void queue.push(() =>
43
- invokeUser(() => (onError ? onError(ctx, ws, error) : Promise.reject(error)), {
44
- fields: { route },
45
- log,
46
- phase: "websocket error",
47
- }),
48
- )
49
- },
50
- onMessage: (_ctx, ws, data) => {
51
- if (!onMessage) return
52
- if (pending >= WS_PENDING_MAX) {
53
- ws.close(1008, "too many pending messages")
54
- return
55
- }
56
- pending++
57
- void queue.push(() =>
58
- run("message", ws, () => onMessage(ctx, ws, data)).finally(() => {
59
- pending--
60
- }),
61
- )
62
- },
63
- onOpen: (_ctx, ws) => {
64
- if (reconnectToken && onReconnect) {
65
- void queue.push(() => run("open", ws, () => onReconnect(ctx, ws, reconnectToken)))
66
- } else if (onOpen) {
67
- void queue.push(() => run("open", ws, () => onOpen(ctx, ws)))
68
- }
69
- },
70
- }
71
- }
72
-
73
- registerFeature("ws", { createWsSession, originAllowed })