@lovrozagar/honey 0.7.3 → 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 -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 +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 -197
  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 -902
  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 -558
  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
@@ -0,0 +1,91 @@
1
+ /**
2
+ * The `.output()` type algebra: what a route declares it answers (a media type's bodies by status
3
+ * key, its redirects, the headers of each status), and ctx.res narrowed to it. A declared helper
4
+ * takes only the declared status keys, each body typed by its status's schema and its options
5
+ * carrying the status's declared headers; an undeclared one is gone; noContent, raw, redirect and
6
+ * stream are always there; sse only for an event stream; binary for octet-stream or an open type.
7
+ */
8
+ import type { BinaryBody } from "../response/binary.ts";
9
+ import type { HoneyRes, ResponseOptions, TypedResponse } from "../response/response.ts";
10
+ import type { StatusKey } from "../response/status.ts";
11
+ import type { InferInput, InferOutput, StandardSchemaLike } from "../validation/standard-schema.ts";
12
+ /** A media type's declared bodies by status key: a schema, or `true` for a body with none. */
13
+ export type StatusSchemas = {
14
+ readonly [K in StatusKey]?: StandardSchemaLike | true;
15
+ };
16
+ /** The headers each status carries, by status key: a schema over the headers by lowercased name. */
17
+ export type HeaderSchemas = {
18
+ readonly [K in StatusKey]?: StandardSchemaLike;
19
+ };
20
+ /** Redirect statuses a route declares, for the generators: no body, no schema. */
21
+ export type RedirectStatuses = {
22
+ readonly [K in StatusKey]?: true;
23
+ };
24
+ /**
25
+ * What `.output()` takes: each media type it answers with (`type/subtype`), the redirects it may
26
+ * answer (`redirect`), and the headers each status carries (`headers`).
27
+ */
28
+ export type OutputSchemas = {
29
+ readonly [mediaType: `${string}/${string}`]: StatusSchemas;
30
+ } & {
31
+ readonly headers?: HeaderSchemas;
32
+ readonly redirect?: RedirectStatuses;
33
+ };
34
+ /**
35
+ * `TOutput` with every key under a media type, `headers` or `redirect` that names no status, and every outer key
36
+ * that is none of those, mapped to `never`: intersected with the declaration, a typo is an error where it is
37
+ * written. `assertOutputKeys` (openapi/output-keys.ts) refuses the same keys where an app is documented.
38
+ */
39
+ export type KnownStatusKeys<TOutput> = {
40
+ readonly [CT in keyof TOutput]: CT extends `${string}/${string}` | "headers" | "redirect" ? {
41
+ readonly [K in keyof TOutput[CT]]: K extends StatusKey ? TOutput[CT][K] : never;
42
+ } : never;
43
+ };
44
+ /** The helper each media type is answered with. */
45
+ type HelperOf = {
46
+ "application/json": "json";
47
+ "application/xml": "xml";
48
+ "text/csv": "csv";
49
+ "text/event-stream": "sse";
50
+ "text/html": "html";
51
+ "text/plain": "text";
52
+ };
53
+ /** The media types answered through `binary`: octet-stream and any type no other helper answers. */
54
+ type BinaryTypes<TOutput> = Exclude<Extract<keyof TOutput, `${string}/${string}`>, keyof HelperOf>;
55
+ /** The helpers a declaration allows. */
56
+ export type AllowedResMethods<TOutput> = {
57
+ [CT in keyof HelperOf]: CT extends keyof TOutput ? HelperOf[CT] : never;
58
+ }[keyof HelperOf] | ([BinaryTypes<TOutput>] extends [never] ? never : "binary");
59
+ /** The helpers every route keeps, whatever it declares. */
60
+ type UniversalRes = Pick<HoneyRes, "noContent" | "raw" | "redirect" | "stream">;
61
+ /** A declared body's type: its schema's output; `unknown` for a body declared without one. */
62
+ type BodyOf<S> = S extends StandardSchemaLike ? InferOutput<S> : unknown;
63
+ /** The header schema status `K` declares, or `never`. */
64
+ type HeadersOf<TOutput, K> = TOutput extends {
65
+ readonly headers?: infer H;
66
+ } ? K extends keyof NonNullable<H> ? Exclude<NonNullable<H>[K], undefined> : never : never;
67
+ /** The headers status `K` must carry in its options: its declared ones, others beside them. */
68
+ type HeaderOpt<TOutput, K> = [HeadersOf<TOutput, K>] extends [never] ? {} : {
69
+ headers: InferInput<HeadersOf<TOutput, K>> & Record<string, string>;
70
+ };
71
+ /** The options for status `K`: required when it declares headers, optional otherwise. */
72
+ type OptsFor<TOutput, K, TExtra = {}> = [HeadersOf<TOutput, K>] extends [never] ? [opts?: ResponseOptions & TExtra] : [opts: ResponseOptions & TExtra & HeaderOpt<TOutput, K>];
73
+ /** `method` narrowed to `CT`'s declared status keys, the body typed (`json`) or text (the others). */
74
+ type Narrowed<TOutput, CT extends keyof HelperOf, TText extends boolean> = CT extends keyof TOutput ? {
75
+ [M in HelperOf[CT]]: <K extends keyof TOutput[CT] & StatusKey>(statusKey: K, body: TText extends true ? string : BodyOf<TOutput[CT][K]>, ...opts: OptsFor<TOutput, K>) => TypedResponse<CT, K>;
76
+ } : {};
77
+ /** `binary` for a declared open type, its content type named; octet-stream may leave it out. */
78
+ type BinaryCall<TOutput> = (<CT extends BinaryTypes<TOutput>, K extends keyof TOutput[CT] & StatusKey>(statusKey: K, body: BinaryBody, opts: ResponseOptions & HeaderOpt<TOutput, K> & {
79
+ contentType: CT;
80
+ }) => TypedResponse<CT, K>) & ("application/octet-stream" extends keyof TOutput ? <K extends keyof TOutput["application/octet-stream"] & StatusKey>(statusKey: K, body: BinaryBody, ...opts: OptsFor<TOutput, K, {
81
+ contentType?: "application/octet-stream";
82
+ }>) => TypedResponse<"application/octet-stream", K> : unknown);
83
+ /** ctx.res for a route declaring `TOutput`. */
84
+ type OutputRes<TOutput> = UniversalRes & Narrowed<TOutput, "application/json", false> & Narrowed<TOutput, "text/plain", true> & Narrowed<TOutput, "text/html", true> & Narrowed<TOutput, "application/xml", true> & Narrowed<TOutput, "text/csv", true> & ("text/event-stream" extends keyof TOutput ? Pick<HoneyRes, "sse"> : {}) & ([BinaryTypes<TOutput>] extends [never] ? {} : {
85
+ binary: BinaryCall<TOutput>;
86
+ });
87
+ /** `TCtx` with ctx.res narrowed to `TOutput`; a route without `.output()` keeps the whole HoneyRes. */
88
+ export type ApplyOutput<TCtx, TOutput> = [TOutput] extends [never] ? TCtx : Omit<TCtx, "res"> & {
89
+ readonly res: OutputRes<TOutput>;
90
+ };
91
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,55 @@
1
+ export type StaticSegment = {
2
+ readonly k: "static";
3
+ readonly v: string;
4
+ };
5
+ export type ParamSegment = {
6
+ readonly k: "param";
7
+ readonly n: string;
8
+ readonly o: boolean;
9
+ };
10
+ export type WildcardSegment = {
11
+ readonly k: "wildcard";
12
+ readonly n: string;
13
+ };
14
+ export type Segment = ParamSegment | StaticSegment | WildcardSegment;
15
+ /** `METHOD /canonical/pattern`: the stable identity of a route across apps, trees and codegen. */
16
+ export type RouteId = string;
17
+ /** How much of a route a scope covers: every path it serves, none, or only some. */
18
+ export type ScopeCoverage = "all" | "none" | "some";
19
+ /** Name given to a `*` wildcard without a name. */
20
+ export declare const UNNAMED_WILDCARD = "*";
21
+ export declare function parsePattern(path: string): Segment[];
22
+ export declare function formatSegment(seg: Segment): string;
23
+ /** Canonical pattern string: leading slash, no empty segments, no trailing slash. */
24
+ export declare function canonical(segments: readonly Segment[]): string;
25
+ /** Parse and re-print; throws on anything the grammar cannot express. */
26
+ export declare function normalizePattern(path: string): string;
27
+ /** Join two patterns: `joinPatterns("/api/", "users")` is `/api/users`. */
28
+ export declare function joinPatterns(base: string, path: string): string;
29
+ /** Concrete variants: an optional last param yields the pattern with and without it. */
30
+ export declare function expandOptional(segments: readonly Segment[]): Segment[][];
31
+ export declare function isStaticPattern(segments: readonly Segment[]): boolean;
32
+ /** Parameter and wildcard names, in order. */
33
+ export declare function patternParams(segments: readonly Segment[]): string[];
34
+ export declare function routeId(method: string, pattern: string): RouteId;
35
+ /** Split a RouteId back into method and canonical pattern. */
36
+ export declare function splitRouteId(id: RouteId): {
37
+ method: string;
38
+ pattern: string;
39
+ };
40
+ /** OpenAPI path template: `:id` and named wildcards become `{name}`. */
41
+ export declare function toOpenApiTemplate(segments: readonly Segment[]): string;
42
+ /**
43
+ * Decide at registration whether a scope covers a route. `"some"` means the answer depends on the
44
+ * request path (a route param or wildcard can land inside the scope), so the scope's middleware is
45
+ * guarded by {@link pathInScope} at request time.
46
+ */
47
+ export declare function scopeCoverage(route: readonly Segment[], scope: readonly Segment[]): ScopeCoverage;
48
+ /** {@link scopeCoverage} for a route already expanded into its optional-param variants, so finalize expands each route once, not once per scope. */
49
+ export declare function variantsCoverage(variants: readonly (readonly Segment[])[], scope: readonly Segment[]): ScopeCoverage;
50
+ /**
51
+ * Is a request path inside a scope? Splits the path the way the router does (empty segments
52
+ * dropped) and compares each segment both as sent and percent-decoded, so a route param that
53
+ * decodes to a scoped literal is guarded exactly like the literal.
54
+ */
55
+ export declare function pathInScope(path: string, scope: readonly Segment[]): boolean;
@@ -0,0 +1,219 @@
1
+ /**
2
+ * The one route-pattern grammar. Registration, the router tree, scope matching, codegen selectors
3
+ * and OpenAPI paths all consume the parsed form; nothing re-derives params from a pattern string
4
+ * with its own regex.
5
+ *
6
+ * pattern = "/" | ("/" segment)+ ["/"]
7
+ * segment = static | param | wildcard
8
+ * param = ":" name ["?"] optional only as the last segment
9
+ * wildcard = "*" [name] last segment only; unnamed is called "*"
10
+ * name = [A-Za-z_$][A-Za-z0-9_$-]*
11
+ *
12
+ * Empty segments are dropped (`//a` is `/a`), a trailing slash is not significant, and a pattern
13
+ * without a leading slash gets one. `.` and `..` segments are rejected.
14
+ */
15
+ import { encodeSegment } from "./request-path.js";
16
+ const NAME = /^[A-Za-z_$][A-Za-z0-9_$-]*$/;
17
+ /* `%2e` is a dot to every URL parser, so `/%2e%2e` can never be requested either */
18
+ const DOT_SEGMENT = /^(?:\.|%2e){1,2}$/i;
19
+ /** Name given to a `*` wildcard without a name. */
20
+ export const UNNAMED_WILDCARD = "*";
21
+ function invalid(path, why) {
22
+ throw new Error(`Invalid route pattern "${path}": ${why}`);
23
+ }
24
+ function paramSegment(path, seg, names) {
25
+ const optional = seg.endsWith("?");
26
+ const name = optional ? seg.slice(1, -1) : seg.slice(1);
27
+ if (!NAME.test(name)) {
28
+ invalid(path, `parameter ":${name}" is not a valid name (letters, digits, "_", "$" and "-"; it takes the whole segment)`);
29
+ }
30
+ if (names.has(name))
31
+ invalid(path, `parameter ":${name}" appears twice`);
32
+ names.add(name);
33
+ return { k: "param", n: name, o: optional };
34
+ }
35
+ function wildcardSegment(path, seg, names) {
36
+ const name = seg.length > 1 ? seg.slice(1) : UNNAMED_WILDCARD;
37
+ if (name !== UNNAMED_WILDCARD && !NAME.test(name))
38
+ invalid(path, `wildcard "*${name}" is not a valid name`);
39
+ if (names.has(name))
40
+ invalid(path, `"${name}" appears twice`);
41
+ names.add(name);
42
+ return { k: "wildcard", n: name };
43
+ }
44
+ function segmentOf(path, seg, names) {
45
+ if (DOT_SEGMENT.test(seg))
46
+ invalid(path, `"${seg}" segments are not allowed`);
47
+ if (seg.startsWith(":"))
48
+ return paramSegment(path, seg, names);
49
+ if (seg.startsWith("*"))
50
+ return wildcardSegment(path, seg, names);
51
+ if (seg.includes("?"))
52
+ invalid(path, "query strings are not part of a route pattern");
53
+ /* the request path is percent-encoded the way URL parsing encodes it; so is a literal */
54
+ return { k: "static", v: encodeSegment(seg) };
55
+ }
56
+ /** A wildcard or an optional param: it matches everything at and below its depth. */
57
+ function isOpenEnded(seg) {
58
+ return seg.k === "wildcard" || (seg.k === "param" && seg.o);
59
+ }
60
+ export function parsePattern(path) {
61
+ if (typeof path !== "string")
62
+ invalid(String(path), "must be a string");
63
+ if (path.includes("#"))
64
+ invalid(path, "fragments are not part of a route pattern");
65
+ const names = new Set();
66
+ const segments = path
67
+ .split("/")
68
+ .filter((seg) => seg !== "")
69
+ .map((seg) => segmentOf(path, seg, names));
70
+ for (const seg of segments.slice(0, -1)) {
71
+ if (seg.k === "wildcard")
72
+ invalid(path, "a wildcard must be the last segment");
73
+ if (isOpenEnded(seg))
74
+ invalid(path, "an optional parameter must be the last segment");
75
+ }
76
+ return segments;
77
+ }
78
+ export function formatSegment(seg) {
79
+ if (seg.k === "static")
80
+ return seg.v;
81
+ if (seg.k === "param")
82
+ return `:${seg.n}${seg.o ? "?" : ""}`;
83
+ return seg.n === UNNAMED_WILDCARD ? "*" : `*${seg.n}`;
84
+ }
85
+ /** Canonical pattern string: leading slash, no empty segments, no trailing slash. */
86
+ export function canonical(segments) {
87
+ return segments.length === 0 ? "/" : segments.map((seg) => `/${formatSegment(seg)}`).join("");
88
+ }
89
+ /** Parse and re-print; throws on anything the grammar cannot express. */
90
+ export function normalizePattern(path) {
91
+ return canonical(parsePattern(path));
92
+ }
93
+ /** Join two patterns: `joinPatterns("/api/", "users")` is `/api/users`. */
94
+ export function joinPatterns(base, path) {
95
+ const head = parsePattern(base);
96
+ const tail = parsePattern(path);
97
+ const last = head.at(-1);
98
+ if (last !== undefined && isOpenEnded(last) && tail.length > 0) {
99
+ invalid(`${base}${path}`, "cannot append to a wildcard or optional parameter");
100
+ }
101
+ /* re-parse: a name used on both sides (`/:id` + `/:id`) is only caught on the whole pattern */
102
+ return normalizePattern(canonical([...head, ...tail]));
103
+ }
104
+ /** Concrete variants: an optional last param yields the pattern with and without it. */
105
+ export function expandOptional(segments) {
106
+ const last = segments.at(-1);
107
+ if (last?.k !== "param" || !last.o)
108
+ return [[...segments]];
109
+ const head = segments.slice(0, -1);
110
+ return [head, [...head, { k: "param", n: last.n, o: false }]];
111
+ }
112
+ export function isStaticPattern(segments) {
113
+ return segments.every((seg) => seg.k === "static");
114
+ }
115
+ /** Parameter and wildcard names, in order. */
116
+ export function patternParams(segments) {
117
+ return segments.flatMap((seg) => (seg.k === "static" ? [] : [seg.n]));
118
+ }
119
+ export function routeId(method, pattern) {
120
+ return `${method} ${pattern}`;
121
+ }
122
+ /** Split a RouteId back into method and canonical pattern. */
123
+ export function splitRouteId(id) {
124
+ const space = id.indexOf(" ");
125
+ return { method: id.slice(0, space), pattern: id.slice(space + 1) };
126
+ }
127
+ /** OpenAPI path template: `:id` and named wildcards become `{name}`. */
128
+ export function toOpenApiTemplate(segments) {
129
+ if (segments.length === 0)
130
+ return "/";
131
+ return segments
132
+ .map((seg) => {
133
+ if (seg.k === "static")
134
+ return `/${seg.v}`;
135
+ return seg.n === UNNAMED_WILDCARD ? "/{wildcard}" : `/{${seg.n}}`;
136
+ })
137
+ .join("");
138
+ }
139
+ /*
140
+ * Scopes. `app.use("/admin", mw)` guards request paths: a path is inside the scope when its leading
141
+ * segments match the scope pattern: static segments literally, `:param` any one segment, `*` and
142
+ * an optional last param everything below. The scope uses the route grammar, so `/orgs/:id` and
143
+ * `/admin/*` mean what they mean in a route.
144
+ */
145
+ function safeDecode(s) {
146
+ if (!s.includes("%"))
147
+ return s;
148
+ try {
149
+ return decodeURIComponent(s);
150
+ }
151
+ catch {
152
+ /* a malformed escape in a pattern literal: kept as written, so it still matches itself */
153
+ return s;
154
+ }
155
+ }
156
+ /* both sides decoded: a literal is stored encoded (`%C3%A9`), and a request may spell the same
157
+ * bytes with lowercase escapes (`%c3%a9`) or raw */
158
+ function sameLiteral(a, b) {
159
+ return a === b || safeDecode(a) === safeDecode(b);
160
+ }
161
+ function coverVariant(route, scope) {
162
+ let uncertain = false;
163
+ for (let i = 0; i < scope.length; i++) {
164
+ const s = scope[i];
165
+ if (isOpenEnded(s))
166
+ return uncertain ? "some" : "all";
167
+ const r = route[i];
168
+ /* the route's paths end before the scope's do */
169
+ if (r === undefined)
170
+ return "none";
171
+ /* a route wildcard serves paths both inside and outside the rest of the scope */
172
+ if (r.k === "wildcard")
173
+ return "some";
174
+ if (r.k === "static" && s.k === "static" && !sameLiteral(r.v, s.v))
175
+ return "none";
176
+ /* a route param against a scope literal: inside the scope only when the value matches */
177
+ if (r.k === "param" && s.k === "static")
178
+ uncertain = true;
179
+ }
180
+ return uncertain ? "some" : "all";
181
+ }
182
+ /**
183
+ * Decide at registration whether a scope covers a route. `"some"` means the answer depends on the
184
+ * request path (a route param or wildcard can land inside the scope), so the scope's middleware is
185
+ * guarded by {@link pathInScope} at request time.
186
+ */
187
+ export function scopeCoverage(route, scope) {
188
+ return variantsCoverage(expandOptional(route), scope);
189
+ }
190
+ /** {@link scopeCoverage} for a route already expanded into its optional-param variants, so finalize expands each route once, not once per scope. */
191
+ export function variantsCoverage(variants, scope) {
192
+ const first = coverVariant(variants[0], scope);
193
+ for (let i = 1; i < variants.length; i++)
194
+ if (coverVariant(variants[i], scope) !== first)
195
+ return "some";
196
+ return first;
197
+ }
198
+ /**
199
+ * Is a request path inside a scope? Splits the path the way the router does (empty segments
200
+ * dropped) and compares each segment both as sent and percent-decoded, so a route param that
201
+ * decodes to a scoped literal is guarded exactly like the literal.
202
+ */
203
+ export function pathInScope(path, scope) {
204
+ let pos = 0;
205
+ for (const s of scope) {
206
+ if (isOpenEnded(s))
207
+ return true;
208
+ while (path.charCodeAt(pos) === 47)
209
+ pos++;
210
+ if (pos >= path.length)
211
+ return false;
212
+ const slash = path.indexOf("/", pos);
213
+ const end = slash === -1 ? path.length : slash;
214
+ if (s.k === "static" && !sameLiteral(path.substring(pos, end), s.v))
215
+ return false;
216
+ pos = end;
217
+ }
218
+ return true;
219
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A route record: what one registered route is. Records live in a per-app table keyed by
3
+ * `RouteId`; the tree only holds ids, so two apps that load the same tree, or a sub-app mounted
4
+ * into two parents, never share a record.
5
+ */
6
+ import type { RouteId, Segment } from "./pattern.ts";
7
+ export type RouteRecord = {
8
+ /** route identity: `METHOD /canonical/pattern` */
9
+ readonly id: RouteId;
10
+ /** route meta, frozen: what `ctx.meta` reads */
11
+ mt: Readonly<Record<string, unknown>> | null;
12
+ /** canonical route pattern, e.g. `/users/:id` */
13
+ readonly rp: string;
14
+ /** the pattern's segments, parsed once at registration so finalize never parses again */
15
+ readonly sg: readonly Segment[];
16
+ };
17
+ /** A fresh record for another graph; the meta object is frozen, so it is shared, not copied. */
18
+ export declare function copyRecord<T extends RouteRecord>(record: T): T;
@@ -0,0 +1,4 @@
1
+ /** A fresh record for another graph; the meta object is frozen, so it is shared, not copied. */
2
+ export function copyRecord(record) {
3
+ return { ...record };
4
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Route registration: the app graph every handle of one app shares, the routes and scopes
3
+ * registered into it, and mounting a sub-app. Records are per graph, keyed by `RouteId`; the
4
+ * tree holds ids only, so a sub-app mounted into two parents never shares a record.
5
+ */
6
+ import type { InputSchemas, InputStep } from "../input/input.ts";
7
+ import type { OutputSchemas } from "./output-types.ts";
8
+ import type { MaybePromise, RuntimeMiddleware } from "../middleware/middleware.ts";
9
+ import type { FinalizeHooks, FinalTable } from "./finalize.ts";
10
+ import { type RouteId, type Segment } from "./pattern.ts";
11
+ import type { RouteRecord } from "./record.ts";
12
+ import { type AppSettings, type ErrorFactories } from "./settings.ts";
13
+ import { type RouteEntry, type TreeNode } from "./tree.ts";
14
+ /** An app's graph slot: not exported from the package; finalize readers (tests, codegen) reach the graph through it. */
15
+ export declare const GRAPH: unique symbol;
16
+ /** A handle's view slot: what a handle-level helper (serving a document) reads its basePath off. */
17
+ export declare const VIEW: unique symbol;
18
+ /**
19
+ * The meta marker of a route an app serves about itself (its document, docs page or manifest).
20
+ * Such a route belongs to the app that registered it: mounting another app copies none of its
21
+ * served routes, a route tree leaves them out, and an app loaded from a tree registers its own.
22
+ */
23
+ export declare const SERVED: unique symbol;
24
+ /** A registered route: what it was registered with, before finalize resolves it against the graph. */
25
+ export type RouteHandler = RouteRecord & {
26
+ /** came with the loaded route tree: a registration of the same route replaces it */
27
+ readonly lt?: true;
28
+ /** the chain middleware captured at registration, plus any mounting chain */
29
+ readonly cm: readonly RuntimeMiddleware[];
30
+ /** `.context()` values of the registering handle, merged under the mounting handle's */
31
+ readonly cv: Readonly<Record<string, unknown>> | null;
32
+ /** error keys the route declared itself (`.errors()`, `.boundary()`) */
33
+ readonly dk: ReadonlySet<string>;
34
+ /** the factory `.errors(factory, ...keys)` named; its keys come from it, not the app's */
35
+ readonly ef: ErrorFactories | null;
36
+ readonly fn: (ctx: object) => MaybePromise<Response>;
37
+ /** the compiled `.input()` step, run after the middleware and before `fn`; `null` without `.input()` */
38
+ readonly in: InputStep | null;
39
+ /** what `.input()` declares, as written: read by documentation, never at dispatch; `null` without it */
40
+ readonly iv: InputSchemas | null;
41
+ /** what `.output()` declares, checked at finalize when the app's mode is on; `null` without it */
42
+ readonly out: OutputSchemas | null;
43
+ /** the settings of the app the route was registered on */
44
+ readonly own: AppSettings<unknown>;
45
+ /** route-level boundary key (`.boundary()`) */
46
+ readonly rb: string | null;
47
+ /** route-level middleware (`.get(...).use(mw)`) */
48
+ readonly rm: readonly RuntimeMiddleware[];
49
+ /** explicit meta: chain `.meta()` overlaid by route `.meta()` */
50
+ readonly xm: Readonly<Record<string, unknown>> | null;
51
+ };
52
+ /** What a builder hands over; the graph gives it its id and pattern. */
53
+ export type RouteSource = Omit<RouteHandler, "id" | "mt" | "rp" | "sg">;
54
+ /** One `app.use(mw)`: the handle it returns has to register a route, or `mw` runs nowhere. */
55
+ export type ChainNode = {
56
+ readonly mw: RuntimeMiddleware;
57
+ readonly parent: ChainNode | null;
58
+ used: boolean;
59
+ };
60
+ /** A route builder still waiting for `.handler()`, reported at finalize. */
61
+ export type PendingRoute = {
62
+ readonly id: string;
63
+ };
64
+ /** One path-scoped `use(path, mw)`. */
65
+ export type ScopedEntry = {
66
+ /** the middleware behind a request-path check, for routes the scope covers only partly */
67
+ readonly guard: RuntimeMiddleware;
68
+ readonly mw: RuntimeMiddleware;
69
+ /** canonical full-path pattern, rebased against the handle's basePath */
70
+ readonly prefix: string;
71
+ readonly segs: readonly Segment[];
72
+ };
73
+ export type HoneyGraph = {
74
+ /** root wildcards a loaded app registered outside its tree: what its unserved leaves delegate to */
75
+ readonly catchAll: Map<RouteId, RouteHandler>;
76
+ /** every `use(mw)` handle; one that never registers a route is reported at finalize */
77
+ readonly chains: ChainNode[];
78
+ /** bumped by every registration; finalize re-runs when it moves */
79
+ epoch: number;
80
+ final: FinalTable | null;
81
+ /** the error boundary and miss answer dispatch compiles into every chain, created once */
82
+ hooks: FinalizeHooks | null;
83
+ readonly pending: Set<PendingRoute>;
84
+ /** the route data of the tree `routeTree()` loaded; `null` while the app builds its own tree */
85
+ loaded: Readonly<Record<RouteId, RouteEntry>> | null;
86
+ readonly records: Map<RouteId, RouteHandler>;
87
+ root: TreeNode;
88
+ /** path-scoped middleware, in registration order */
89
+ readonly scoped: ScopedEntry[];
90
+ /** chains of the handles that served a request: what 404 and 405 run when there are no routes */
91
+ readonly served: Set<readonly RuntimeMiddleware[]>;
92
+ readonly settings: AppSettings<unknown>;
93
+ /** routes a loaded app registered that its tree lacks: the tree is stale, said at finalize */
94
+ readonly unexpected: RouteId[];
95
+ };
96
+ /** What one handle contributes to the routes registered or mounted through it. */
97
+ export type HandleView = {
98
+ readonly basePath: string;
99
+ readonly chain: readonly RuntimeMiddleware[];
100
+ readonly chainMeta: Readonly<Record<string, unknown>> | null;
101
+ readonly contextValues: Readonly<Record<string, unknown>> | null;
102
+ /** the `use(mw)` call that created this chain; `null` on the root handle */
103
+ readonly node: ChainNode | null;
104
+ };
105
+ export declare const ROOT_VIEW: HandleView;
106
+ export declare function createGraph(): HoneyGraph;
107
+ /** Every `use()` on the way to a handle that registers, mounts or serves is in use. */
108
+ export declare function markUsed(node: ChainNode | null): void;
109
+ /** A new `use(mw)` node under `parent`. */
110
+ export declare function addChain(g: HoneyGraph, parent: ChainNode | null, mw: RuntimeMiddleware): ChainNode;
111
+ /** Register one route at every leaf its pattern occupies (an optional last param places two). */
112
+ /** Throw the duplicate-route error when `g` already has a route at `method` and `segments`. */
113
+ export declare function assertRouteFree(g: HoneyGraph, method: string, segments: readonly Segment[]): RouteId;
114
+ /** Whether a route's own meta marks it served: the app's own, never copied with it. */
115
+ export declare function isServed(r: {
116
+ readonly xm: Readonly<Record<string, unknown>> | null;
117
+ }): boolean;
118
+ export declare function addRoute(g: HoneyGraph, method: string, segments: readonly Segment[], source: RouteSource): RouteId;
119
+ /** Guard every request path under `path` (rebased on `basePath`) with `mw`, whichever handle registered the route. */
120
+ export declare function addScope(g: HoneyGraph, basePath: string, path: string, mw: RuntimeMiddleware): void;
121
+ /** A builder registered or was abandoned on purpose: no longer pending. */
122
+ export declare function settle(g: HoneyGraph, pending: PendingRoute, node: ChainNode | null): void;
123
+ /** `use(mw)` handles that never registered, mounted or served, and builders without `.handler()`. */
124
+ export declare function assertNothingDiscarded(g: HoneyGraph): void;
125
+ /**
126
+ * Mount a sub-app: re-register its routes under the view's basePath, with the view's chain running
127
+ * before theirs and its context values and chain meta under theirs. Nothing is shared by
128
+ * reference, so routes the sub registers later stay its own; each record keeps the settings of the
129
+ * app it was registered on. The sub's scopes guard the paths it brought.
130
+ */
131
+ export declare function mount(g: HoneyGraph, view: HandleView, sub: HoneyGraph): void;
132
+ /** The error keys a middleware chain declares, in run order. */
133
+ export declare function chainErrorKeys(chain: readonly RuntimeMiddleware[]): string[];
134
+ /** The factories a middleware chain's keys come from, each once, in run order. */
135
+ export declare function chainErrorFactories(chain: readonly RuntimeMiddleware[]): ErrorFactories[];