@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,266 +0,0 @@
1
- # Regression matrix: workstreams 9–12
2
-
3
- OpenAPI and the manifest, codegen (TypeScript, type extraction, MCP, Go, Rust, Python, Go CLI), the
4
- client runtimes, and tooling.
5
-
6
- Most findings here were already guarded by tests written
7
- alongside their fixes. Each of those tests was run against `3ab88ce` on its own, and the reason for
8
- the failure was checked; they now carry a `// regression: <id>` comment. Findings with no such
9
- test got a new one in `packages/core/tests/regression/ws9-12/`:
10
-
11
- - `typescript.regression.test.ts`: generated TypeScript that must parse (H40), schema-name hash
12
- collisions, trailing slashes in spec paths, and the `ctx.retry()` failure path.
13
- - `tooling.regression.test.ts`: generated-file writes, watch globs, stale outputs, the CLI watch
14
- loop and the Node config hand-off.
15
- - `polyglot.regression.test.ts` (opt-in, `test:harness`): the Go, Rust, Python and Go CLI SDKs.
16
- Runtime findings run the programs in `checks/` against a mock server in the test process that
17
- records every request; the programs use only API that both trees generate, so one build per
18
- language serves every check, and Go reaches methods through reflection so a signature that
19
- differs between the trees fails one check, not the build. Compile findings generate an SDK from
20
- a one-finding document and compile it with `go vet`, `cargo check`, or `compileall` plus mypy.
21
- The Python half uses the harness venv (`.cache/python-venv`, see the README test section) or
22
- `HONEY_PYTHON`.
23
-
24
- Abbreviations: `ts` = `regression/ws9-12/typescript.regression.test.ts`, `tooling` =
25
- `regression/ws9-12/tooling.regression.test.ts`, `poly` = `regression/ws9-12/polyglot.regression.test.ts`;
26
- other paths are relative to `packages/core/tests/`. "Yes" means the test fails on `3ab88ce` for the
27
- reason the finding describes; the observed failure follows.
28
-
29
- Scope: Critical, High and Medium findings, plus the Lows that were cheap. Findings in the
30
- realtime protocol (resume, ready, ping, long-poll, the SDK resumable connections) are deferred by
31
- the realtime decision and are not listed, except where a crash fix shipped.
32
-
33
- ## Workstream 9: OpenAPI and manifest
34
-
35
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
36
- | -------- | --- | ----------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------ |
37
- | H31 | H | `_openApiCache` per instance: two `openapi()` calls serve one document | unit/openapi/serve-endpoints: "an internal and a public document never share a cache, whichever is hit first" | Yes: the public path served `Internal` | |
38
- | H32 | H | A mounted sub-app's `openapi()` hijacks the gateway's spec endpoint | unit/openapi/serve-endpoints: "the gateway serves its own document when the sub also called openapi()" (both orders) | Yes: `Sub` served for the gateway | |
39
- | H33 | H | One unrepresentable Zod node replaces the whole schema | unit/codegen/schema-to-json-schema-io: "an unrepresentable z.custom degrades only its node", "an unrepresentable search field keeps every other parameter" | Yes: vendor envelope; no parameters | |
40
- | H34 | H | Wildcards are not path params; `all()` emits an `all` key | unit/openapi/document-policy: "a named wildcard is a path parameter, an unnamed one too", "all() documents the standard methods…" | Yes: `/files/*path`, `/star/**`; `all` | |
41
- | M | M | `toOpenApiPath` disagrees with the router (`openapi/collect.ts:15-27`) | unit/openapi/document-conformance: "every operation, with its declared path parameters filled in, reaches a handler" | Yes: `/u/{user}-id` with param `user-id` | |
42
- | M | M | Several content types overwrite each other (`openapi/document.ts:375,421,438`) | unit/openapi/document-policy: "json and form bodies of one route are both documented", "two response content types of one status keep their own schemas" | Yes: one content type left | The redirect + JSON half has no separate test |
43
- | M | M | WS operations bypass `filterRoutes` and `x-internal`, and overwrite a GET (`openapi/document.ts:538-597`) | unit/openapi/document-policy: "go through filterRoutes and meta.internal, and never replace an HTTP GET", "drop x-internal search fields" | Yes | |
44
- | M | M | `/manifest.json` publishes raw meta for every route (`codegen.ts:1192-1200`) | unit/openapi/document-policy: "applies the document's visibility policy", "the /manifest.json route serves the published view" | Yes: hidden routes listed | |
45
- | decision | — | `meta.internal` routes published in the served document | unit/openapi/meta-spec: "built-in `internal` stays hidden and does not trip totality" | Yes | |
46
- | M | M | YAML emitter writes invalid or different YAML (`src/yaml.ts`) | unit/codegen/yaml: "skips undefined keys…", "Date becomes its ISO string…", "quotes every string a parser could read differently" | Yes: `null`, `{}`, parse error | |
47
- | M | M | Standalone `spec()` emits hollow documents, leaks options into `info`, never invalidates, cannot serve two apps (`openapi/spec.ts:20-47`) | unit/openapi/document-policy: "documents bodies and parameters…", "rebuilds after routes change…"; unit/openapi/serve-endpoints: "one spec() handler mounted on two apps documents each app" | Yes: options in `info`; stale paths; "Cannot redefine property" | |
48
- | M | M | Spec routes not mounted behind an earlier `/:slug` or `/*rest` GET (`index.ts:1020-1032`) | unit/openapi/serve-endpoints: "a root /:slug or /*rest route does not shadow the spec routes" | Yes: `openapi({ docs })` throws "cannot mount at /docs: already registered" | The old code mistakes the catch-all for a registered `/docs` |
49
- | M | M | `invalidate` selectors never validated (`meta-spec.ts:182`) | unit/openapi/document-policy: "an invalidate selector that names no route fails generation" | Yes: resolves | |
50
- | M | M | `anyOf` becomes `oneOf`; recursive `$ref: "#"` after hoisting (`codegen-sanitize.ts:34-36`) | unit/openapi/document-policy: "unions stay anyOf…", "a recursive schema's self-reference points at its component…" | Yes | |
51
- | M | M | Valibot converter gaps (`codegen.ts:87-149`) | unit/codegen/valibot-json-schema: "nullish and exactOptional entries are optional", "strictObject forbids extra keys…", "variant is a union; lazy resolves…" | Yes | |
52
- | M | M | Cached spec re-serialized per request; failed generation re-runs per request (`index.ts:968`) | unit/openapi/serve-endpoints: "generates and serializes once per route change, however many requests"; unit/openapi/serve: "caches a failed generation until the routes change, then retries" | Yes: 5 generations; retried every request | |
53
- | M | M | A sub-app's `strict: "off"` downgrades the parent (`index.ts:1346`) | unit/openapi/serve-endpoints: "a sub's strict: "off" does not downgrade the parent's resolved strictness" (both orders) | Yes | |
54
- | M | M | `normalizeSecurity` returns `[]` for object or mixed values; scheme names unchecked (`meta-spec.ts:49-64,181`) | unit/codegen/codegen: the five "normalizeSecurity …" tests; unit/openapi/document-policy: "a security scheme missing from securitySchemes fails generation" | Yes | |
55
- | L | L | Invalidate check: profile without `x-invalidate`; entity with no tagged reader | unit/openapi/document-policy: the two "invalidate check" tests | Yes | |
56
- | L | L | `route(sub)` before `metaSpec()` throws | unit/openapi/serve-endpoints: "metaSpec() after route(sub) merges instead of throwing" | Yes: "already declared" | |
57
- | L | L | Docs HTML misses `stripPrefix` | unit/openapi/serve-endpoints: "the docs UI points at the stripped prefix the browser sees" | Yes | |
58
- | L | L | `trailingSlash("enforce")` paths lose the slash | ts: "L (trailing slash): with trailingSlash(enforce) spec paths keep the slash clients must send" | Yes: `/users/{id}` | |
59
- | L | L | `filterRoutes` gets `meta: null` | unit/openapi/document-policy: "receives an object for meta, never null" | Yes: TypeError | |
60
- | L | L | Duplicate detection ignores `on`/`profiles`; duplicate `operationId`s emitted | unit/openapi/document-policy: "entries for different targets or disjoint profiles are not duplicates", "two routes declaring the same operationId fail generation" | Yes | |
61
- | L | L | Non-`x-` top-level `_generated` key | tooling: "L (plugin.ts:332,342): generated OpenAPI and manifest carry no non-x- top-level `_generated` key" | Yes | |
62
- | L | L | Spec and manifest served with no gating, cache headers or ETag | unit/openapi/serve-endpoints: "sends a strong ETag with no-cache…", "enabled: false mounts nothing" | Yes | |
63
-
64
- ## Workstream 10: codegen
65
-
66
- ### TypeScript, MCP and type extraction
67
-
68
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
69
- | ----------- | --- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
70
- | M (was H39) | M | `declare module "honey"` never augments the real package | unit/codegen/invalidate-meta: "emits declare module with HoneyCodegen routeSelector" | Yes | |
71
- | H40 | H | Raw string interpolation in generated TypeScript | ts: the four "H40: …" tests (literals, hyphenated param, error keys, meta key into `routes.gen.ts`) | Yes: each output fails to parse | |
72
- | H37b | H | Generated client drops the body on SSE operations | unit/sdk/generated-runtime-fixes: "a POST SSE operation sends its JSON body and runs onRequest/onResponse hooks" | Yes: no body | |
73
- | H35b | H | Generated SDK lets `..`/`.` collapse segments | conformance/generated-sdk: "dot-dot param rejected", "dot param rejected", "empty param rejected" | Yes: the request is sent | |
74
- | M | M | Routes expanding to several operations share one `operationId` (`codegen.ts:295-317`) | unit/openapi/document-policy: "one route expanded into several operations gets method and variant suffixes" | Yes | |
75
- | M | M | Wildcard routes unusable in OpenAPI and the SDK | unit/openapi/document-policy (H34 rows); conformance/generated-sdk: "wildcard spans segments" | Yes | |
76
- | M | M | Resource names collide with client members and `Object.prototype` | unit/sdk/generated-runtime-fixes: "renames colliding resources…", "keeps state, dispose and String(sdk) working…" | Yes | |
77
- | M | M | Stream request bodies: no `duplex: "half"`, `new Request` over a consumed stream | unit/sdk/generated-runtime-fixes: "send with duplex: half, and an onResponse hook still gets a Request" | Yes: "Response body object should not be disturbed or locked" | |
78
- | M | M | Idempotency key written into the caller's input | unit/sdk/generated-runtime-fixes: "are never written into the caller's input…" | Yes | The `randomUUID` fallback half has no test |
79
- | M | M | Output order depends on locale (`localeCompare`) | unit/codegen/ts-type-emitter: "fields are ordered by code unit, not locale" | Yes | One call site; the rest are covered by snapshot determinism, not by a locale switch |
80
- | H (was M) | H | Several content types share one schema name; dangling `$ref` (`codegen.ts:580-596`) | unit/openapi/document-policy: "deduplicateSchemas keys slots by content type…", "an existing component is never overwritten by a derived name" | Yes | |
81
- | M | M | `allOf` over a union, typed `additionalProperties`, unresolved `$ref`, depth cut-off (`ts-type-emitter.ts`) | unit/codegen/ts-type-emitter: the four precedence/maps/depth tests | Yes | |
82
- | L | L | Prototype pollution from `operationId: "__proto__.polluted"` | unit/sdk/generated-runtime-fixes: "an operationId of **proto**.x never reaches Object.prototype during generation" | Yes | On 3ab88ce it pollutes the test process: later tests in that file fail with `Invalid option … "polluted"` unless run alone |
83
- | L | L | `default` response key parsed as `NaN` | unit/openapi/document-policy and unit/sdk/generated-runtime-fixes: "…`default` response…" | Yes | |
84
- | L | L | Fallback Zod converters (`codegen.ts:1000-1018`) | — | — | Not covered: only reached for a Zod schema without `toJSONSchema` |
85
- | L | L | 24-bit name hash collisions | ts: "L (codegen-hash.ts:2-8): two shapes whose 24-bit name hashes collide keep their own schemas" | Yes: `text/plain` resolves to `aR` | The old `unit/openapi/document-policy` hash test passes on `3ab88ce` (no collision path) and is kept only as a HEAD check |
86
- | L | L | Header/cookie params missing; SDK name and stem unvalidated | unit/sdk/generated-runtime-fixes: "header and cookie params reach the input type…", "rejects an SDK name or stem…" | Yes | Orphan components have no test |
87
- | L | L | MCP: injection through `operationId` and `projectName`; tool names | unit/codegen/codegen-mcp-hardening: "an operationId with quotes … do not inject code", "tool names are sanitized…" | Yes: the generated source fails to parse | |
88
- | M | M | MCP: a `$ref` cycle hangs generation | unit/codegen/codegen-mcp-hardening: "a pure $ref cycle is an error, not a hang", "shared $refs are expanded once each" | Yes: stack overflow; no result within 60 s | "a self-referential $ref terminates" passes on `3ab88ce` and is not a guard |
89
- | M | M | MCP: base URL guessed as `https://api.<project>.com` | unit/codegen/codegen-mcp-hardening: "server.ts requires an explicit base URL" | Yes | |
90
- | M | M | MCP: tool arguments reach the SDK unvalidated | unit/codegen/codegen-mcp-hardening: "credential headers are never tool arguments" | Yes | The `callTool` validation tests use API that did not exist at `3ab88ce` |
91
- | H71 | H | Middleware ctx types keyed without basePath | unit/codegen/type-extractor-hardening: both "(H71)" tests | Yes | |
92
- | H72 | H | Emitted `import()` references do not resolve | unit/codegen/type-extractor-hardening: "(H72)" test | Yes | |
93
- | H73 | H | `serialize()` writes wrong types | unit/codegen/type-extractor-hardening: both "(H73)" tests | Yes | |
94
- | M | M | Stack overflow on Zod 4 getter recursion | unit/codegen/type-emitter-hardening: "Zod 4 getter recursion becomes a named alias…" | Yes: stack overflow | |
95
- | M | M | Numeric enums, bigint, intersection, tuple rest, map/set (`type-emitter.ts`) | unit/codegen/type-emitter-hardening: the four literal/shape tests | Yes | |
96
- | L | L | Types need a top-level `const app` | unit/codegen/type-extractor-hardening: "accepts `export default honey()`" | Yes | |
97
-
98
- ### Go, Rust, Python and Go CLI emitters
99
-
100
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
101
- | --------- | --- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
102
- | H41 | H | Rust SSE never attaches method, query, body, headers; an integer query does not compile | poly: "Rust runtime H41: an SSE operation sends its method, query, body and auth"; compile "H41 (an integer query param on an SSE operation compiles)" | Yes: `GET`; E0308 | |
103
- | H42 | H | SSE on non-GET: Go sends GET, Python drops the body, the CLI does not compile | poly: Go and Python "H42: …" runtime tests; compile "H42 (the CLI compiles a POST SSE operation with a body)" | Yes: `GET`; empty body; `bodyBytes` unused | |
104
- | H43 | H | Python `types.py` writes raw keys as attributes | poly compile: "H43 (JSON keys that are not identifiers)" | Yes: SyntaxError at `2fa` | |
105
- | H44 | H | Sync Python SDK raises `NameError` for a namespace with only streaming ops | poly compile: "H44 (a root namespace with only streaming operations)" | Yes: `_SyncEventsResource` | |
106
- | H45 | H | Python query params named like SDK arguments | poly compile: "H45 (query params named like the SDK's arguments)" | Yes: duplicate argument `timeout` | |
107
- | H46 | H | Go receiver collides with `q` | poly compile: "H46 (a namespace starting with q)" | Yes | |
108
- | H47 | H | Path params emitted as raw identifiers | poly compile: "H47 …" (Go, Rust) | Yes: `type` | |
109
- | H48 | H | Multi-line descriptions escape comments; docstrings break | poly compile: "H48 …" (Go, Rust, Python) | Yes | |
110
- | H49 | H | Enum values become identifiers without sanitizing | poly compile: "H49 …" (Go, Rust) | Yes: `-created_at`; `Self` | |
111
- | H50 | H | Go and Python send no multipart or urlencoded body | poly: Go "H50: an urlencoded body is sent", "H50: a multipart body is sent"; Python "H50: an urlencoded body is sent" | Yes: the methods take no body | Python multipart fixed after the matrix (see below) (see below); its test is skipped |
112
- | H51 | H | Go array/nullable/bracketed/`headers` params do not compile; Rust `timeout`/`headers`; Rust arrays sent as JSON | poly compile: "H51 …" (Go, Rust); "Rust runtime H51: an array query param repeats its key" | Yes: compile errors; `ids=["a","b"]` | |
113
- | H52 | H | Schemas named like runtime types: Go `Config` dropped, Rust `Error`/`Option`/`Result`, Python `NotFoundError` | poly compile: the three "H52 …" cases | Yes: `Config.Get` returns the SDK config; E0107; not an exception | |
114
- | H53 | H | Rust sync client references an undefined `…ResourceSync` | poly compile: "H53 (a namespace with only nested methods)" | Yes: unresolved import | |
115
- | H54 | H | CLI flag and variable collisions | poly compile: "H54 (CLI flags and variables never collide)" | Yes: redeclared vars | |
116
- | M | M | Rust hoisted names collide silently | poly compile: "M (rust-type-emitter.ts:138-140): hoisted names never merge" | Yes: no field `b` | Compiles on `3ab88ce`; the test reads both fields |
117
- | M | M | Only direct self-reference boxed (Rust); recursive structs (Go) | poly compile: "M (rust-type-emitter.ts:271,403): mutual recursion compiles" (Go, Rust) | Yes: E0072; invalid recursive type | |
118
- | M | M | Unions: Go loses variant data; Rust tagged unions with inline variants do not compile | poly: "Go runtime M (go-type-emitter.ts:315-323)…"; compile "M (rust-type-emitter.ts:326-368)…" | Yes: `payload: null`; `Variant` defined twice | |
119
- | M | M | Go `additionalProperties` beside fields is a no-op | poly: "Go runtime M (go-type-emitter.ts:363-388)…" | Yes: extra key lost | |
120
- | M | M | `text/plain` 2xx bodies JSON-decoded (Go, Rust) | poly: Go and Rust "…a text/plain 2xx body is not JSON-decoded" | Yes: decode error | |
121
- | M | M | Inline array responses lose their hoisted item type | poly compile: "M (codegen-rust.ts:107; codegen-go.ts:161)…" [rust] | Yes: `BodyItem` undefined | The [go] case compiles on `3ab88ce` too: the Go half did not reproduce |
122
- | M | M | Field identifiers and struct tags not sanitized | poly compile: "M (go-type-emitter.ts:33-35,50-52,347)…" (Go, Rust) | Yes | |
123
- | M | M | Auth differs per language: the CLI always sends Bearer | poly: "Go CLI runtime M (codegen-go-cli.ts:918,948)…" | Yes: no `x-api-key` | Go/Rust WS dial auth has no test |
124
- | NEW | M | Rust sends nullable query strings JSON-quoted | poly: "Rust runtime NEW (M): a nullable query string is sent without JSON quotes" | Yes: `maybe=%22foo%22` | |
125
- | NEW | L | Python return annotations are `TypedDict(...)` calls | poly compile: "NEW (L): return annotations are valid for type checkers" | Yes: mypy `valid-type` | |
126
- | M | M | Python class-name collisions (`sync.contacts` vs `contacts`) | poly compile: "M (codegen-python.ts:219-227,740)…" | Yes: the nested resource calls the wrong class | |
127
- | M | M | Rust `throwOnError: false` does nothing | poly compile: "M (codegen-rust.ts:176-197; runtime.rs:357-370): safe mode returns an API error inside SdkResult" | Yes: the 404 is an `Err` | |
128
- | M | M | Path params `..`, `.`, `""` not rejected in Go, Python, Rust | poly: the three "…path params are refused before sending" runtime tests | Yes: requests sent | |
129
- | M | M | CLI enum values raw in `fmt.Errorf`; query params shadow global flags | poly compile: "M (codegen-go-cli.ts:800,812)…", "M (codegen-go-cli.ts:395-400)…" | Yes: syntax error; redeclared | |
130
- | H (was M) | H | CLI resource `root` overwrites `cmd/root.go` | poly compile: "H (codegen-go-cli.ts:372,1170-1172)…" | Yes: `configFromCtx` undefined | |
131
- | M | M | Python `types.py` aliases are `NewType(Any)` | poly compile: "M (codegen-python.ts:622-628)…" | Yes: mypy `valid-newtype` | |
132
- | L | L | Rust literal escapes (`\b`, `\f`) | poly compile: "L (rust-type-emitter.ts:105,314)…" | Yes: unknown character escape | The `allOf` field half has no test |
133
- | L | L | Nullable + optional cannot send `null` | tests/integration/sdk-harness/nullable-tri-state.test.ts | Old API cannot express | The tri-state types are new |
134
-
135
- Not covered: the Python `x-realtime` URL braces and the Rust `x-realtime` branch (realtime decision);
136
- the L items `usedSchemas` regex, dead Rust SSE/WS emitters, and `unwrap_or_default`.
137
-
138
- ## Workstream 11: client runtimes
139
-
140
- ### TypeScript (`client/*`, MCP runtime)
141
-
142
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
143
- | ------- | --- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
144
- | H35 | H | `..`, `.`, `""` path params collapse or swap the host | unit/client/client-behavior-spec: "URL building (H35)…"; conformance/url-building: the "…rejected" vectors | Yes: the request is sent | |
145
- | H36 | H | Safe mode returns a falsy `error` for non-JSON error bodies | unit/client/client-behavior-spec: "Errors (H36) safe mode…"; unit/sdk/sdk-runtime-characterization: "error body that is not JSON still returns a truthy error…" | Yes: `undefined` | |
146
- | H37 | H | SSE drops the body and skips hooks | unit/client/client-behavior-spec: "Streams (H37) … a streamed POST carries its body…" | Yes | |
147
- | H38 | H | `onAuthExpired` never called | unit/client/client-behavior-spec: "Auth refresh (H38)…" (four tests) | Yes | |
148
- | M | M | No per-call `timeout`; README error subclasses missing | unit/client/client-behavior-spec: "per-call timeout overrides the config", "throw mode: per-status subclasses" | Yes | |
149
- | M | M | `cleanup()` before `_parseBody`: timeouts and aborts miss the body read | unit/client/client-behavior-spec: "the timeout covers reading the body", "a user abort after headers still cancels the body read…" | Yes | |
150
- | M | M | The lazy dual-mode return is a real Promise | unit/client/client-behavior-spec: "awaiting an SSE call resolves to an iterable…", "await then for-await reuses the one request" | Yes | |
151
- | M | M | Empty 2xx bodies: raw `SyntaxError`, wrong types | unit/client/client-behavior-spec: "empty or invalid 2xx bodies keep the status" | Yes | |
152
- | M | M | `ctx.retry()` failure paths | ts: "M (client/http.ts:359-365): an unguarded retry hook on a persistent 401 ends with the 401"; unit/client/client-behavior-spec: "a guarded hook in safe mode returns { error }…" | Yes: "Max 1 retry per request"; throws | The behavior-spec version needs the new `UnauthorizedError` export, so `ts` holds the old-compatible guard |
153
- | M | M | Partially resolvable invalidation targets dropped | unit/client/client-behavior-spec: "partially resolvable invalidation targets mark the narrower pattern"; unit/client/http-r6-phase-g: the two R6-12 tests | Yes | |
154
- | M | M | One concrete read clears a pattern mark for all instances | unit/sdk/sdk-invalidation: "each instance reads stale once; a concrete read never clears the others" | Yes | |
155
- | M | M | Form arrays encoded inconsistently | unit/client/client-behavior-spec: "arrays repeat the key in both encodings…" | Yes: `tags=a%2Cb` | |
156
- | L | L | SSE parser: truncated final event, sticky id, `retry` | conformance/sse: "truncated final event discarded", "id is sticky", "retry digits only" | Yes | |
157
- | L | L | `/users/{user-id}` and `/ops/{id}:cancel` | unit/client/client-behavior-spec: "SDK paths: hyphenated braces and `{id}:action` interpolate" | Yes | |
158
- | L | L | `undefined` per-call header; forced `x-request-id` | unit/client/client-behavior-spec: "skips undefined per-call headers…", "requestId: false sends no x-request-id…" | Yes | |
159
- | L | L | MCP binary results serialize as `{}` | unit/codegen/codegen-mcp-hardening: "binary results are described…" | Old API cannot express | `callTool` is new |
160
-
161
- Not covered (L): `client/ws.ts` listener map and binary frames, `invalidatedBy` growth.
162
-
163
- ### Go, Python and the Go CLI
164
-
165
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
166
- | ------------- | --- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------- |
167
- | H55 | H | Python SSE splits on U+2028 and other separators | poly: "Python runtime H55…" | Yes: `{"t":"a` | |
168
- | H56 | H | Go `ResolveReference` drops the base path | poly: "Go runtime H56: the base URL's path is kept" | Yes: `/users/1` | |
169
- | NEW | H | Python `..` collapses to the parent | poly: "Python runtime NEW (H, codegen-python.ts:399)…" | Yes: requests sent | |
170
- | H57, H58, H59 | H | Go realtime spins, dies after reconnect, panics on close | tests/integration/sdk-harness/polyglot-runtime.test.ts (`runtime_test.go`) | Old API cannot express | Crash fixes shipped under the realtime decision; the checks use HEAD-only transport API |
171
- | H60 | H | SSE cut by default request timeouts | poly: "Python runtime H60: an SSE stream outlives the default read timeout" | Yes: `ReadTimeout` | The Go half needs a 30 s stream; covered on HEAD by `runtime_test.go` `TestTimeoutBoundsCallsNotStreams` |
172
- | H61 | H | Python realtime stops silently | polyglot-runtime.test.ts (`runtime_check.py`) | Old API cannot express | Realtime decision |
173
- | H62 | H | The 401-refresh retry resends uploads with an empty body | poly: "Go runtime H62: a 401 never makes a raw upload go out again with an empty body"; "Python runtime H62: the 401-refresh retry resends a raw upload body" | Yes: the second body is empty | A JSON body already survived on `3ab88ce` in Go |
174
- | M | M | Go has no `CheckRedirect`: custom headers follow other hosts | poly: "Go runtime M (client-go/runtime.go:270,362-372)…" | Yes: `x-api-key` reached the other host | |
175
- | M | M | Go `Config.Timeout` never read | poly: "Go runtime M (client-go/runtime.go:55)…" | Yes: no error after 2 s | |
176
- | H (was M) | H | CLI exit codes: 404 and 500 both exit 3 | poly: "Go CLI runtime H (cli-go/errors.go:36-39)…" | Yes: 3 | |
177
- | M | M | Hostile server bytes printed raw by the CLI | poly: "Go CLI runtime M (client-go/errors.go:156-206; cli-go/output.go:53-94)…" | Yes: ESC in a table cell | The error path already escaped on `3ab88ce` |
178
- | M | M | Python returns 3xx as success | poly: "Python runtime M (client-python/_runtime.py:159-161)…" | Yes | |
179
- | M | M | Python returns `response.text` for binary bodies | poly: "Python runtime M (client-python/_runtime.py:149-156)…" | Yes: `str` | |
180
- | M | M | Python sync `on_auth_expired` fails silently | poly: "Python runtime M (client-python/_runtime.py:385-392)…" | Yes: `'str' object can't be awaited` | |
181
- | M | M | Param-less mutations drop pattern targets (Go, Python); Go reads never clear | poly: Go and Python "…a param-less mutation marks the templated read stale…" | Yes: `[false, false, …]` | |
182
- | M | M | CLI decodes into `any`: big integers lose precision | poly: "Go CLI runtime M (cli-go/output.go:25,74,87)…" | Yes: `1234567890123456800` | |
183
- | L | L | Go SSE delimiter priority and a dispatched partial event | poly: "Go runtime L (client-go/sse.go:70-90)…" | Yes: `partial` dispatched | |
184
- | L | L | Python `/ops/{id}:cancel` raises | poly: "Python runtime L (client-python/_invalidation.py:17,53-69)…" | Yes | |
185
- | L | L | Python header merge is case-sensitive | poly: "Python runtime L (client-python/_runtime.py:116-135)…" | Yes: two `authorization` headers | |
186
- | L | L | Refreshed token not kept | poly: Go and Python "L … the refreshed token is kept for later calls" | Yes: a second 401 round trip | |
187
-
188
- Not covered: the Go WebSocket 32 KiB read limit (M), the realtime reopen context (M, realtime), and
189
- the L items for unbounded reads, concrete keys with `:`, WS handlers, transport leaks, CLI version
190
- and config, and stale-lookup performance.
191
-
192
- ### Rust
193
-
194
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
195
- | --------- | --- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
196
- | H63 | H | Send errors surface as "request canceled" | poly: "Rust runtime H63: connection refused is a transport error, not `Canceled`" | **No** | Not reproduced: with the reqwest 0.12.28 the lockfile resolves, refused, DNS and unroutable errors all map to `Transport` on `3ab88ce` too. Kept as a HEAD guard |
197
- | H56b | H | `base.join(path)` drops the base path | poly: "Rust runtime H56b: the base URL's path is kept" | Yes: `/users/1` | |
198
- | H64 | H | `recv` dropped mid-reconnect leaves the connection stuck | polyglot-runtime.test.ts (`runtime_check.rs`) | Old API cannot express | Realtime decision |
199
- | M | M | SSE buffer unbounded, rescanned from 0 | poly: "Rust runtime M (sse.rs:32-44,79-93): an SSE line has a size cap…" | Yes: a 3 MiB event buffered whole | The quadratic rescan does not show in wall time once TCP coalesces chunks; the cap half is the guard |
200
- | M | M | SSE `trim()`, CR-only lines, BOM | poly: "Rust runtime M (sse.rs:50-51,66-67,80,110-111)…" | Yes: `first` dropped, `tok ` trimmed | |
201
- | M | M | Headers merged case-sensitively and appended | poly: "Rust runtime M (runtime.rs:394-406,445-458)…" | Yes: two `authorization` | |
202
- | M | M | Redirects replay custom headers cross-host | poly: "Rust runtime M (runtime.rs:400-406,445-447)…" | Yes | |
203
- | M | M | Refreshed token discarded; N 401s refresh N times | poly: "Rust runtime M (runtime.rs:285-338): the refreshed token is kept…", "…concurrent 401s trigger one refresh" | Yes: 2 round trips; 3 refreshes | |
204
- | M | M | Param-less mutations drop templated targets | poly: "Rust runtime M (invalidation.rs:121-146)…" | Yes | |
205
- | L (was M) | L | Error message is the full raw body | poly: "Rust runtime L (errors.rs:184)…" | Yes: 20 038 characters | |
206
-
207
- Not covered: the SSE transport status check, long-poll, `send_json` auth and resume (realtime
208
- decision), and the L items for body copies, WS handlers, the scheme swap and sync timeout mapping.
209
-
210
- ## Workstream 12: tooling
211
-
212
- | Finding | Sev | Bug | Test | Fails on 3ab88ce? | Notes |
213
- | --------- | --- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
214
- | H67 | H | `honey init` writes the unscoped `honey` dependency | unit/plugin/cli-init: "writes app, vite config, and package scripts" | Yes | |
215
- | H68 | H | Watch regenerates with stale transitive modules | unit/plugin/cli-generate: "--watch sees edits to modules the app imports" | Yes | |
216
- | H69, H69b | H | The package cannot load from `node_modules` on plain Node | `bun run test:packaging` (`e2e/run-strict-consumer.ts`) | Old API cannot express | `3ab88ce` ships no `dist/` to pack |
217
- | H70 | H | CLI argument parser ignores and swallows flags | unit/plugin/cli-generate: "rejects unknown flags…", "--app=<path> overrides…", "calls a function-form Vite config"; unit/plugin/cli-init: "--cloudflare is an alias of --cf…" | Yes | |
218
- | H70b | H | `honey generate` on Node never finds the Vite config | tooling: "H70b: `honey generate` on plain Node finds the Vite config" | Yes: "No config found" | |
219
- | M | M | `honey init` rewrites an existing `package.json` | unit/plugin/cli-init: "keeps an existing package.json's scripts, type and privacy without --force" | Yes | |
220
- | H (was M) | H | Generation runs the app's top-level side effects | unit/plugin/cli-generate: "an app that serves at top level and leaves a timer still generates and exits…"; unit/plugin/generate-and-write: "…its top-level serve() binds nothing" | Yes: EADDRINUSE | |
221
- | M | M | The "unchanged" check trusts only the header checksum | tooling: "M (plugin.ts:294-353): a truncated generated file with a matching checksum header is rewritten" | Yes | |
222
- | M | M | `virtual:honey/routes` returns TypeScript as JS | unit/plugin/vite-plugin: "load returns route tree for virtual module with moduleType", "virtual route tree loads in a real Vite dev server" | Yes: parse failure | |
223
- | M | M | `hotUpdate` suppresses HMR, runs per environment, re-triggers on outputs | unit/plugin/vite-plugin: the three hotUpdate tests | Yes | |
224
- | M | M | Feature detection is a regex over one file | unit/build/build-plugin: "finds openapi() behind a re-export entry", "ignores feature calls in comments and strings" | Yes | |
225
- | M | M | The Bun build entry has no WebSocket handlers | unit/build/build-plugin: "bun: startHoneyServer with the runtime, env and 0.0.0.0" | Yes | |
226
- | M | M | CLI watch loops when an SDK out dir sits under the app | tooling: "M (plugin.ts:544-575): CLI watch does not loop…" | **No** | Cannot be reached at `3ab88ce`: its CLI does not load a path-imported Vite config (H70b), and its flags have no Python port. Guards HEAD |
227
- | M | M | Stale generated files never removed | tooling: "M (plugin.ts:544-601): a Go CLI resource that no longer exists leaves no ghost command file" | Yes: `owners.go` left | |
228
- | M | M | The `watch` glob matcher | tooling: the four "watch pattern … regenerates" tests and "src/**/*.ts does not match a file under node_modules" | Yes | |
229
- | L | L | `virtual:honey/openapi` omits `profile` | unit/plugin/vite-plugin: "virtual openapi module applies the configured profile" | Yes | |
230
- | L | L | `ssr.noExternal: true` for every target | unit/build/build-plugin: "keeps dependencies external on node and bun, bundles them for workers" | Yes | |
231
-
232
- Not covered (L): jiti re-transpile time, the watch in-flight guard and `_lastConfig`.
233
-
234
- ## Findings that were open on HEAD (fixed after the matrix)
235
-
236
- The matrix found three findings still broken at `ba39cc7`; all three are fixed and guarded:
237
-
238
- - **H50, Python multipart.** httpx 0.28 cannot encode a list of `data` tuples beside `files` (a text
239
- field raised `TypeError`, a file alone went out with an empty body). Text fields now travel as
240
- `(None, value)` file parts. Guard: poly Python "H50: a multipart body is sent" (no longer skipped;
241
- asserts the text field and the file bytes reach the server).
242
- - **Rust SDK with a bare object response** (`{ "type": "object" }`) used `HashMap` in
243
- `src/resources/*.rs` without importing it (E0425). Map types are now emitted fully qualified.
244
- Guard: poly compile case "NEW (H): a bare object response compiles"; fails with E0425 before the fix.
245
- - **Go CLI, missing required flag** exited 3 instead of 4: cobra checks required flags after
246
- `PersistentPreRunE`, so the error bypassed the usage mapping. The hook now validates required
247
- flags and flag groups itself, any error before it is a usage error, and an unknown subcommand under
248
- a group exits 4 instead of printing help with exit 0. Guard: poly Go CLI "a missing required flag,
249
- an unknown flag and a stray subcommand exit 4 (usage) and send nothing".
250
-
251
- Also fixed: `bin/honey.js` ran `dist/cli.js` under Node even in a repository checkout, so
252
- `honey generate` after a source change could run stale code. Guard: tooling "bin/honey.js picks the
253
- CLI it runs" (fails on the previous bin).
254
-
255
- ## Counts
256
-
257
- 148 rows. 73 are guarded by an existing test, each verified against `3ab88ce` on its own. 70 rows
258
- point at the 100 newly written tests in `regression/ws9-12/` (7 TypeScript, 10 tooling, 83
259
- polyglot, the Python multipart one skipped at `ba39cc7` and enabled with its fix), all failing on `3ab88ce`. Three
260
- tests were strengthened or replaced because the version that existed passed on `3ab88ce`: the hash
261
- collision, the `ctx.retry()` failure path, and Go H62 (a JSON body already survived the retry).
262
-
263
- Nine findings use API that did not exist at `3ab88ce` and are guarded on HEAD only: H57, H58, H59,
264
- H61, H64, H69, H69b, nullable + optional, and the MCP binary result. Three did not reproduce on
265
- `3ab88ce` and stay as HEAD guards: H63, the CLI watch loop, and the Go half of the inline-array
266
- item type.