@lovrozagar/honey 0.7.3 → 1.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1005) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +930 -1664
  3. package/bin/honey.js +87 -27
  4. package/dist/adapters/bun/serve.d.ts +18 -0
  5. package/dist/adapters/bun/serve.js +89 -0
  6. package/dist/adapters/fetch-request.d.ts +20 -0
  7. package/dist/adapters/fetch-request.js +29 -0
  8. package/dist/adapters/node/headers.d.ts +27 -0
  9. package/dist/adapters/node/headers.js +86 -0
  10. package/dist/adapters/node/request.d.ts +16 -0
  11. package/dist/adapters/node/request.js +214 -0
  12. package/dist/adapters/node/response.d.ts +11 -0
  13. package/dist/adapters/node/response.js +126 -0
  14. package/dist/adapters/node/serve.d.ts +39 -0
  15. package/dist/adapters/node/serve.js +205 -0
  16. package/dist/adapters/node/url.d.ts +13 -0
  17. package/dist/adapters/node/url.js +87 -0
  18. package/dist/adapters/serve.d.ts +36 -0
  19. package/dist/adapters/serve.js +52 -0
  20. package/dist/build/artifacts.d.ts +34 -0
  21. package/dist/build/artifacts.js +123 -0
  22. package/dist/build/cli-args.d.ts +30 -0
  23. package/dist/build/cli-args.js +97 -0
  24. package/dist/build/cli.d.ts +11 -0
  25. package/dist/build/cli.js +150 -0
  26. package/dist/build/config.d.ts +102 -0
  27. package/dist/build/config.js +89 -0
  28. package/dist/build/generate.d.ts +19 -0
  29. package/dist/build/generate.js +80 -0
  30. package/dist/build/glob.d.ts +8 -0
  31. package/dist/build/glob.js +97 -0
  32. package/dist/build/index.d.ts +3 -58
  33. package/dist/build/index.js +3 -173
  34. package/dist/build/init.d.ts +3 -0
  35. package/dist/build/init.js +131 -0
  36. package/dist/build/loaders.d.ts +33 -0
  37. package/dist/build/loaders.js +105 -0
  38. package/dist/build/plugin.d.ts +52 -0
  39. package/dist/build/plugin.js +146 -0
  40. package/dist/build/source.d.ts +21 -0
  41. package/dist/build/source.js +100 -0
  42. package/dist/build/targets.d.ts +59 -0
  43. package/dist/build/targets.js +107 -0
  44. package/dist/context/context.d.ts +111 -0
  45. package/dist/context/context.js +213 -0
  46. package/dist/context/cookie-sign.d.ts +38 -0
  47. package/dist/context/cookie-sign.js +113 -0
  48. package/dist/context/cookie.d.ts +28 -0
  49. package/dist/context/cookie.js +142 -0
  50. package/dist/context/peer.d.ts +34 -0
  51. package/dist/context/peer.js +190 -0
  52. package/dist/errors/error.d.ts +60 -0
  53. package/dist/errors/error.js +84 -0
  54. package/dist/errors/errors.d.ts +45 -0
  55. package/dist/errors/errors.js +31 -0
  56. package/dist/errors/on-error.d.ts +10 -0
  57. package/dist/errors/on-error.js +204 -0
  58. package/dist/errors/problem-json.d.ts +14 -0
  59. package/dist/errors/problem-json.js +58 -0
  60. package/dist/errors/projector.d.ts +50 -0
  61. package/dist/errors/projector.js +107 -0
  62. package/dist/i18n/error-i18n.d.ts +26 -0
  63. package/dist/i18n/error-i18n.js +77 -0
  64. package/dist/i18n/i18n.d.ts +21 -0
  65. package/dist/i18n/i18n.js +40 -0
  66. package/dist/i18n/icu.d.ts +29 -0
  67. package/dist/i18n/icu.js +170 -0
  68. package/dist/i18n/index.d.ts +4 -0
  69. package/dist/i18n/index.js +3 -0
  70. package/dist/index.d.ts +30 -746
  71. package/dist/index.js +12 -2364
  72. package/dist/input/accepts.d.ts +5 -0
  73. package/dist/input/accepts.js +105 -0
  74. package/dist/input/binary.d.ts +20 -0
  75. package/dist/input/binary.js +40 -0
  76. package/dist/input/body-kind.d.ts +15 -0
  77. package/dist/input/body-kind.js +47 -0
  78. package/dist/input/body-limit.d.ts +21 -0
  79. package/dist/input/body-limit.js +99 -0
  80. package/dist/input/cookies.d.ts +7 -0
  81. package/dist/input/cookies.js +8 -0
  82. package/dist/input/form.d.ts +10 -0
  83. package/dist/input/form.js +24 -0
  84. package/dist/input/headers.d.ts +7 -0
  85. package/dist/input/headers.js +8 -0
  86. package/dist/input/input.d.ts +91 -0
  87. package/dist/input/input.js +88 -0
  88. package/dist/input/json.d.ts +10 -0
  89. package/dist/input/json.js +22 -0
  90. package/dist/input/params.d.ts +7 -0
  91. package/dist/input/params.js +8 -0
  92. package/dist/input/query.d.ts +10 -0
  93. package/dist/input/query.js +17 -0
  94. package/dist/mcp/mount.d.ts +116 -0
  95. package/dist/mcp/mount.js +45 -0
  96. package/dist/mcp/oauth.d.ts +14 -0
  97. package/dist/mcp/oauth.js +88 -0
  98. package/dist/mcp/uploads.d.ts +36 -0
  99. package/dist/mcp/uploads.js +171 -0
  100. package/dist/mcp/url-files.d.ts +32 -0
  101. package/dist/mcp/url-files.js +75 -0
  102. package/dist/meta/meta-spec-apply.d.ts +25 -0
  103. package/dist/meta/meta-spec-apply.js +83 -0
  104. package/dist/meta/meta-spec-merge.d.ts +103 -0
  105. package/dist/meta/meta-spec-merge.js +50 -0
  106. package/dist/meta/meta-spec-validate.d.ts +61 -0
  107. package/dist/meta/meta-spec-validate.js +166 -0
  108. package/dist/meta/meta-spec.d.ts +49 -0
  109. package/dist/meta/meta-spec.js +197 -0
  110. package/dist/middleware/compress.d.ts +15 -0
  111. package/dist/middleware/compress.js +93 -0
  112. package/dist/middleware/cors.d.ts +18 -0
  113. package/dist/middleware/cors.js +80 -0
  114. package/dist/middleware/csrf.d.ts +11 -0
  115. package/dist/middleware/csrf.js +65 -0
  116. package/dist/middleware/ip-restrict.d.ts +10 -0
  117. package/dist/middleware/ip-restrict.js +82 -0
  118. package/dist/middleware/middleware.d.ts +53 -0
  119. package/dist/middleware/middleware.js +112 -0
  120. package/dist/middleware/powered-by.d.ts +6 -0
  121. package/dist/middleware/powered-by.js +13 -0
  122. package/dist/middleware/rate-limit.d.ts +40 -0
  123. package/dist/middleware/rate-limit.js +90 -0
  124. package/dist/middleware/request-id.d.ts +25 -0
  125. package/dist/middleware/request-id.js +30 -0
  126. package/dist/middleware/secure-headers.d.ts +18 -0
  127. package/dist/middleware/secure-headers.js +36 -0
  128. package/dist/middleware/server-timing.d.ts +8 -0
  129. package/dist/middleware/server-timing.js +52 -0
  130. package/dist/middleware/timeout.d.ts +6 -0
  131. package/dist/middleware/timeout.js +29 -0
  132. package/dist/observability/curl-logger.d.ts +46 -0
  133. package/dist/observability/curl-logger.js +175 -0
  134. package/dist/observability/request-to-curl.d.ts +17 -0
  135. package/dist/observability/request-to-curl.js +47 -0
  136. package/dist/openapi/collect.d.ts +56 -18
  137. package/dist/openapi/collect.js +109 -23
  138. package/dist/openapi/components.d.ts +9 -0
  139. package/dist/openapi/components.js +90 -0
  140. package/dist/openapi/docs-page.d.ts +20 -18
  141. package/dist/openapi/docs-page.js +28 -46
  142. package/dist/openapi/document.d.ts +33 -26
  143. package/dist/openapi/document.js +21 -780
  144. package/dist/openapi/extract-schemas.d.ts +11 -0
  145. package/dist/openapi/extract-schemas.js +31 -0
  146. package/dist/openapi/generate.d.ts +47 -0
  147. package/dist/openapi/generate.js +180 -0
  148. package/dist/openapi/manifest.d.ts +41 -0
  149. package/dist/openapi/manifest.js +49 -0
  150. package/dist/openapi/output-keys.d.ts +6 -0
  151. package/dist/openapi/output-keys.js +24 -0
  152. package/dist/openapi/paths.d.ts +35 -0
  153. package/dist/openapi/paths.js +175 -0
  154. package/dist/openapi/register.d.ts +14 -3
  155. package/dist/openapi/register.js +13 -20
  156. package/dist/openapi/responses.d.ts +44 -0
  157. package/dist/openapi/responses.js +159 -0
  158. package/dist/openapi/scalar.d.ts +4 -14
  159. package/dist/openapi/scalar.js +5 -7
  160. package/dist/openapi/security.d.ts +4 -0
  161. package/dist/openapi/security.js +25 -0
  162. package/dist/openapi/serve.d.ts +25 -9
  163. package/dist/openapi/serve.js +108 -29
  164. package/dist/openapi/servers.d.ts +19 -0
  165. package/dist/openapi/servers.js +72 -0
  166. package/dist/openapi/swagger.d.ts +4 -14
  167. package/dist/openapi/swagger.js +5 -7
  168. package/dist/openapi/tags.d.ts +20 -0
  169. package/dist/openapi/tags.js +20 -0
  170. package/dist/openapi/webhooks.d.ts +19 -0
  171. package/dist/openapi/webhooks.js +70 -0
  172. package/dist/openapi/yaml.d.ts +8 -0
  173. package/dist/openapi/yaml.js +74 -0
  174. package/dist/proxy/headers.d.ts +30 -0
  175. package/dist/proxy/headers.js +86 -0
  176. package/dist/proxy/proxy.d.ts +39 -0
  177. package/dist/proxy/proxy.js +103 -0
  178. package/dist/proxy/upstream.d.ts +30 -0
  179. package/dist/proxy/upstream.js +116 -0
  180. package/dist/realtime/bus.d.ts +10 -13
  181. package/dist/realtime/bus.js +48 -93
  182. package/dist/realtime/invoke-user.d.ts +36 -0
  183. package/dist/realtime/invoke-user.js +103 -0
  184. package/dist/realtime/realtime.d.ts +7 -0
  185. package/dist/realtime/realtime.js +40 -0
  186. package/dist/realtime/route.d.ts +33 -27
  187. package/dist/realtime/route.js +27 -43
  188. package/dist/realtime/server.d.ts +24 -28
  189. package/dist/realtime/server.js +202 -225
  190. package/dist/response/binary.d.ts +18 -0
  191. package/dist/response/binary.js +10 -0
  192. package/dist/response/builder.d.ts +73 -0
  193. package/dist/response/builder.js +214 -0
  194. package/dist/response/cache-control.d.ts +30 -0
  195. package/dist/response/cache-control.js +74 -0
  196. package/dist/response/etag.d.ts +15 -0
  197. package/dist/response/etag.js +83 -0
  198. package/dist/response/media-type.d.ts +28 -0
  199. package/dist/response/media-type.js +97 -0
  200. package/dist/response/out-headers.d.ts +31 -0
  201. package/dist/response/out-headers.js +130 -0
  202. package/dist/response/pretty-json.d.ts +10 -0
  203. package/dist/response/pretty-json.js +44 -0
  204. package/dist/response/range.d.ts +19 -0
  205. package/dist/response/range.js +98 -0
  206. package/dist/response/response-headers.d.ts +11 -0
  207. package/dist/response/response-headers.js +21 -0
  208. package/dist/response/response.d.ts +69 -0
  209. package/dist/response/response.js +208 -0
  210. package/dist/response/sse.d.ts +41 -0
  211. package/dist/response/sse.js +73 -0
  212. package/dist/response/static.d.ts +20 -0
  213. package/dist/response/static.js +181 -0
  214. package/dist/response/status.d.ts +5 -0
  215. package/dist/response/status.js +68 -0
  216. package/dist/response/with-headers.d.ts +11 -0
  217. package/dist/response/with-headers.js +47 -0
  218. package/dist/routing/app-types.d.ts +175 -0
  219. package/dist/routing/app-types.js +1 -0
  220. package/dist/routing/app.d.ts +76 -0
  221. package/dist/routing/app.js +137 -0
  222. package/dist/routing/codegen-types.d.ts +17 -0
  223. package/dist/routing/codegen-types.js +1 -0
  224. package/dist/routing/delegate.d.ts +9 -0
  225. package/dist/routing/delegate.js +75 -0
  226. package/dist/routing/dispatch.d.ts +22 -0
  227. package/dist/routing/dispatch.js +255 -0
  228. package/dist/routing/finalize.d.ts +47 -0
  229. package/dist/routing/finalize.js +169 -0
  230. package/dist/routing/gateway-tree.d.ts +19 -0
  231. package/dist/routing/gateway-tree.js +74 -0
  232. package/dist/routing/invalidate-check.d.ts +58 -0
  233. package/dist/routing/invalidate-check.js +124 -0
  234. package/dist/routing/match.d.ts +22 -0
  235. package/dist/routing/match.js +108 -0
  236. package/dist/routing/meta-types.d.ts +34 -0
  237. package/dist/routing/meta-types.js +5 -0
  238. package/dist/routing/middleware-chain.d.ts +16 -0
  239. package/dist/routing/middleware-chain.js +41 -0
  240. package/dist/routing/output-types.d.ts +91 -0
  241. package/dist/routing/output-types.js +1 -0
  242. package/dist/routing/pattern.d.ts +55 -0
  243. package/dist/routing/pattern.js +219 -0
  244. package/dist/routing/record.d.ts +18 -0
  245. package/dist/routing/record.js +4 -0
  246. package/dist/routing/register.d.ts +135 -0
  247. package/dist/routing/register.js +155 -0
  248. package/dist/routing/request-path.d.ts +30 -0
  249. package/dist/routing/request-path.js +173 -0
  250. package/dist/routing/route-builder.d.ts +160 -0
  251. package/dist/routing/route-builder.js +86 -0
  252. package/dist/routing/route-tree.d.ts +18 -0
  253. package/dist/routing/route-tree.js +91 -0
  254. package/dist/routing/settings-chain.d.ts +75 -0
  255. package/dist/routing/settings-chain.js +137 -0
  256. package/dist/routing/settings.d.ts +90 -0
  257. package/dist/routing/settings.js +44 -0
  258. package/dist/routing/tap.d.ts +31 -0
  259. package/dist/routing/tap.js +77 -0
  260. package/dist/routing/tree-merge.d.ts +7 -0
  261. package/dist/routing/tree-merge.js +77 -0
  262. package/dist/routing/tree.d.ts +85 -0
  263. package/dist/routing/tree.js +196 -0
  264. package/dist/routing/types.d.ts +20 -0
  265. package/dist/routing/types.js +1 -0
  266. package/dist/routing/ws-builder.d.ts +62 -0
  267. package/dist/routing/ws-builder.js +109 -0
  268. package/dist/runtime/detect-runtime.d.ts +16 -0
  269. package/dist/runtime/detect-runtime.js +11 -0
  270. package/dist/runtime/optional-peer.d.ts +10 -0
  271. package/dist/runtime/optional-peer.js +19 -0
  272. package/dist/schema/arktype.d.ts +7 -0
  273. package/dist/schema/arktype.js +13 -0
  274. package/dist/schema/canonicalize.d.ts +8 -0
  275. package/dist/schema/canonicalize.js +19 -0
  276. package/dist/schema/effect.d.ts +7 -0
  277. package/dist/schema/effect.js +4 -0
  278. package/dist/schema/naming.d.ts +31 -0
  279. package/dist/schema/naming.js +116 -0
  280. package/dist/schema/sanitize-spec.d.ts +15 -0
  281. package/dist/schema/sanitize-spec.js +43 -0
  282. package/dist/schema/slots.d.ts +15 -0
  283. package/dist/schema/slots.js +179 -0
  284. package/dist/schema/to-json-schema.d.ts +34 -0
  285. package/dist/schema/to-json-schema.js +94 -0
  286. package/dist/schema/valibot.d.ts +4 -0
  287. package/dist/schema/valibot.js +153 -0
  288. package/dist/schema/yup.d.ts +3 -0
  289. package/dist/schema/yup.js +57 -0
  290. package/dist/schema/zod.d.ts +6 -0
  291. package/dist/schema/zod.js +192 -0
  292. package/dist/security/crypto.d.ts +7 -0
  293. package/dist/security/crypto.js +30 -0
  294. package/dist/streaming/producer-stream.d.ts +45 -0
  295. package/dist/streaming/producer-stream.js +251 -0
  296. package/dist/telemetry/fields.d.ts +43 -0
  297. package/dist/telemetry/fields.js +64 -0
  298. package/dist/telemetry/log-format.d.ts +7 -0
  299. package/dist/telemetry/log-format.js +43 -0
  300. package/dist/telemetry/logger.d.ts +44 -0
  301. package/dist/telemetry/logger.js +136 -0
  302. package/dist/telemetry/otel-subpath.d.ts +7 -0
  303. package/dist/telemetry/otel-subpath.js +5 -0
  304. package/dist/telemetry/otel.d.ts +50 -57
  305. package/dist/telemetry/otel.js +54 -130
  306. package/dist/telemetry/request-log.d.ts +22 -0
  307. package/dist/telemetry/request-log.js +83 -0
  308. package/dist/telemetry/request-trace.d.ts +123 -0
  309. package/dist/telemetry/request-trace.js +199 -0
  310. package/dist/telemetry/span-lifecycle.d.ts +11 -0
  311. package/dist/telemetry/span-lifecycle.js +114 -0
  312. package/dist/telemetry/traceparent.d.ts +40 -0
  313. package/dist/telemetry/traceparent.js +73 -0
  314. package/dist/testing/testing.d.ts +42 -0
  315. package/dist/testing/testing.js +101 -0
  316. package/dist/validation/content-type.d.ts +21 -0
  317. package/dist/validation/content-type.js +42 -0
  318. package/dist/validation/standard-schema.d.ts +41 -0
  319. package/dist/validation/standard-schema.js +5 -0
  320. package/dist/validation/validate-input.d.ts +45 -0
  321. package/dist/validation/validate-input.js +174 -0
  322. package/dist/validation/validate-output.d.ts +34 -0
  323. package/dist/validation/validate-output.js +107 -0
  324. package/dist/ws/bun.d.ts +30 -25
  325. package/dist/ws/bun.js +42 -46
  326. package/dist/ws/cloudflare.d.ts +6 -75
  327. package/dist/ws/cloudflare.js +37 -104
  328. package/dist/ws/contract.d.ts +74 -0
  329. package/dist/ws/contract.js +83 -0
  330. package/dist/ws/node.d.ts +12 -21
  331. package/dist/ws/node.js +103 -151
  332. package/dist/ws/origin.d.ts +23 -0
  333. package/dist/ws/origin.js +48 -0
  334. package/dist/ws/route.d.ts +14 -0
  335. package/dist/ws/route.js +5 -0
  336. package/dist/ws/session.d.ts +15 -6
  337. package/dist/ws/session.js +22 -23
  338. package/dist/ws/shared.d.ts +23 -33
  339. package/dist/ws/shared.js +53 -39
  340. package/package.json +169 -251
  341. package/dist/accepts.d.ts +0 -12
  342. package/dist/accepts.d.ts.map +0 -1
  343. package/dist/accepts.js +0 -126
  344. package/dist/accepts.js.map +0 -1
  345. package/dist/body-kind.d.ts +0 -26
  346. package/dist/body-kind.d.ts.map +0 -1
  347. package/dist/body-kind.js +0 -70
  348. package/dist/body-kind.js.map +0 -1
  349. package/dist/body-limit.d.ts +0 -26
  350. package/dist/body-limit.d.ts.map +0 -1
  351. package/dist/body-limit.js +0 -126
  352. package/dist/body-limit.js.map +0 -1
  353. package/dist/build/index.d.ts.map +0 -1
  354. package/dist/build/index.js.map +0 -1
  355. package/dist/cli-args.d.ts +0 -33
  356. package/dist/cli-args.d.ts.map +0 -1
  357. package/dist/cli-args.js +0 -102
  358. package/dist/cli-args.js.map +0 -1
  359. package/dist/cli-go/auth.go +0 -26
  360. package/dist/cli-go/config.go +0 -192
  361. package/dist/cli-go/errors.go +0 -75
  362. package/dist/cli-go/multipart.go +0 -79
  363. package/dist/cli-go/output.go +0 -163
  364. package/dist/cli-go/root.go +0 -30
  365. package/dist/cli-go/stream.go +0 -88
  366. package/dist/cli-go/version.go +0 -5
  367. package/dist/cli.d.ts +0 -3
  368. package/dist/cli.d.ts.map +0 -1
  369. package/dist/cli.js +0 -209
  370. package/dist/cli.js.map +0 -1
  371. package/dist/client/defaults.d.ts +0 -12
  372. package/dist/client/defaults.d.ts.map +0 -1
  373. package/dist/client/defaults.js +0 -48
  374. package/dist/client/defaults.js.map +0 -1
  375. package/dist/client/error.d.ts +0 -49
  376. package/dist/client/error.d.ts.map +0 -1
  377. package/dist/client/error.js +0 -71
  378. package/dist/client/error.js.map +0 -1
  379. package/dist/client/http.d.ts +0 -155
  380. package/dist/client/http.d.ts.map +0 -1
  381. package/dist/client/http.js +0 -571
  382. package/dist/client/http.js.map +0 -1
  383. package/dist/client/index.d.ts +0 -23
  384. package/dist/client/index.d.ts.map +0 -1
  385. package/dist/client/index.js +0 -95
  386. package/dist/client/index.js.map +0 -1
  387. package/dist/client/path.d.ts +0 -26
  388. package/dist/client/path.d.ts.map +0 -1
  389. package/dist/client/path.js +0 -163
  390. package/dist/client/path.js.map +0 -1
  391. package/dist/client/redirect-policy.d.ts +0 -12
  392. package/dist/client/redirect-policy.d.ts.map +0 -1
  393. package/dist/client/redirect-policy.js +0 -20
  394. package/dist/client/redirect-policy.js.map +0 -1
  395. package/dist/client/sdk.d.ts +0 -70
  396. package/dist/client/sdk.d.ts.map +0 -1
  397. package/dist/client/sdk.js +0 -292
  398. package/dist/client/sdk.js.map +0 -1
  399. package/dist/client/sse.d.ts +0 -23
  400. package/dist/client/sse.d.ts.map +0 -1
  401. package/dist/client/sse.js +0 -129
  402. package/dist/client/sse.js.map +0 -1
  403. package/dist/client/types.d.ts +0 -124
  404. package/dist/client/types.d.ts.map +0 -1
  405. package/dist/client/types.js +0 -2
  406. package/dist/client/types.js.map +0 -1
  407. package/dist/client/ws.d.ts +0 -22
  408. package/dist/client/ws.d.ts.map +0 -1
  409. package/dist/client/ws.js +0 -112
  410. package/dist/client/ws.js.map +0 -1
  411. package/dist/client-go/errors.go +0 -236
  412. package/dist/client-go/export.go +0 -44
  413. package/dist/client-go/invalidation.go +0 -371
  414. package/dist/client-go/nullable.go +0 -62
  415. package/dist/client-go/realtime.go +0 -354
  416. package/dist/client-go/result.go +0 -20
  417. package/dist/client-go/runtime.go +0 -975
  418. package/dist/client-go/sse.go +0 -159
  419. package/dist/client-go/transport.go +0 -495
  420. package/dist/client-go/ws.go +0 -128
  421. package/dist/client-info.d.ts +0 -36
  422. package/dist/client-info.d.ts.map +0 -1
  423. package/dist/client-info.js +0 -53
  424. package/dist/client-info.js.map +0 -1
  425. package/dist/client-mcp/README.md +0 -10
  426. package/dist/client-mcp/server.ts +0 -221
  427. package/dist/client-mcp/types.ts +0 -19
  428. package/dist/client-python/_errors.py +0 -115
  429. package/dist/client-python/_invalidation.py +0 -494
  430. package/dist/client-python/_realtime.py +0 -179
  431. package/dist/client-python/_runtime.py +0 -860
  432. package/dist/client-python/_sse.py +0 -155
  433. package/dist/client-python/_transport.py +0 -366
  434. package/dist/client-python/_ws.py +0 -159
  435. package/dist/client-python/py.typed +0 -0
  436. package/dist/client-rust/errors.rs +0 -220
  437. package/dist/client-rust/invalidation.rs +0 -412
  438. package/dist/client-rust/invalidation_sync.rs +0 -93
  439. package/dist/client-rust/nullable.rs +0 -17
  440. package/dist/client-rust/realtime.rs +0 -702
  441. package/dist/client-rust/result.rs +0 -22
  442. package/dist/client-rust/runtime.rs +0 -980
  443. package/dist/client-rust/runtime_sync.rs +0 -484
  444. package/dist/client-rust/sse.rs +0 -188
  445. package/dist/client-rust/ws.rs +0 -167
  446. package/dist/codegen-go-cli.d.ts +0 -22
  447. package/dist/codegen-go-cli.d.ts.map +0 -1
  448. package/dist/codegen-go-cli.js +0 -964
  449. package/dist/codegen-go-cli.js.map +0 -1
  450. package/dist/codegen-go.d.ts +0 -41
  451. package/dist/codegen-go.d.ts.map +0 -1
  452. package/dist/codegen-go.js +0 -872
  453. package/dist/codegen-go.js.map +0 -1
  454. package/dist/codegen-hash.d.ts +0 -3
  455. package/dist/codegen-hash.d.ts.map +0 -1
  456. package/dist/codegen-hash.js +0 -9
  457. package/dist/codegen-hash.js.map +0 -1
  458. package/dist/codegen-ir.d.ts +0 -190
  459. package/dist/codegen-ir.d.ts.map +0 -1
  460. package/dist/codegen-ir.js +0 -661
  461. package/dist/codegen-ir.js.map +0 -1
  462. package/dist/codegen-lang.d.ts +0 -65
  463. package/dist/codegen-lang.d.ts.map +0 -1
  464. package/dist/codegen-lang.js +0 -526
  465. package/dist/codegen-lang.js.map +0 -1
  466. package/dist/codegen-load.d.ts +0 -31
  467. package/dist/codegen-load.d.ts.map +0 -1
  468. package/dist/codegen-load.js +0 -138
  469. package/dist/codegen-load.js.map +0 -1
  470. package/dist/codegen-loaders.d.ts +0 -12
  471. package/dist/codegen-loaders.d.ts.map +0 -1
  472. package/dist/codegen-loaders.js +0 -55
  473. package/dist/codegen-loaders.js.map +0 -1
  474. package/dist/codegen-mcp.d.ts +0 -13
  475. package/dist/codegen-mcp.d.ts.map +0 -1
  476. package/dist/codegen-mcp.js +0 -368
  477. package/dist/codegen-mcp.js.map +0 -1
  478. package/dist/codegen-python.d.ts +0 -33
  479. package/dist/codegen-python.d.ts.map +0 -1
  480. package/dist/codegen-python.js +0 -828
  481. package/dist/codegen-python.js.map +0 -1
  482. package/dist/codegen-route-tree-intern.d.ts +0 -40
  483. package/dist/codegen-route-tree-intern.d.ts.map +0 -1
  484. package/dist/codegen-route-tree-intern.js +0 -221
  485. package/dist/codegen-route-tree-intern.js.map +0 -1
  486. package/dist/codegen-rust.d.ts +0 -18
  487. package/dist/codegen-rust.d.ts.map +0 -1
  488. package/dist/codegen-rust.js +0 -1293
  489. package/dist/codegen-rust.js.map +0 -1
  490. package/dist/codegen-sanitize.d.ts +0 -3
  491. package/dist/codegen-sanitize.d.ts.map +0 -1
  492. package/dist/codegen-sanitize.js +0 -56
  493. package/dist/codegen-sanitize.js.map +0 -1
  494. package/dist/codegen-schema-naming.d.ts +0 -27
  495. package/dist/codegen-schema-naming.d.ts.map +0 -1
  496. package/dist/codegen-schema-naming.js +0 -150
  497. package/dist/codegen-schema-naming.js.map +0 -1
  498. package/dist/codegen-sdk-model.d.ts +0 -71
  499. package/dist/codegen-sdk-model.d.ts.map +0 -1
  500. package/dist/codegen-sdk-model.js +0 -179
  501. package/dist/codegen-sdk-model.js.map +0 -1
  502. package/dist/codegen.d.ts +0 -187
  503. package/dist/codegen.d.ts.map +0 -1
  504. package/dist/codegen.js +0 -4619
  505. package/dist/codegen.js.map +0 -1
  506. package/dist/context.d.ts +0 -86
  507. package/dist/context.d.ts.map +0 -1
  508. package/dist/context.js +0 -242
  509. package/dist/context.js.map +0 -1
  510. package/dist/cookie-sign.d.ts +0 -17
  511. package/dist/cookie-sign.d.ts.map +0 -1
  512. package/dist/cookie-sign.js +0 -104
  513. package/dist/cookie-sign.js.map +0 -1
  514. package/dist/cookie.d.ts +0 -24
  515. package/dist/cookie.d.ts.map +0 -1
  516. package/dist/cookie.js +0 -138
  517. package/dist/cookie.js.map +0 -1
  518. package/dist/cors.d.ts +0 -14
  519. package/dist/cors.d.ts.map +0 -1
  520. package/dist/cors.js +0 -87
  521. package/dist/cors.js.map +0 -1
  522. package/dist/crypto.d.ts +0 -7
  523. package/dist/crypto.d.ts.map +0 -1
  524. package/dist/crypto.js +0 -38
  525. package/dist/crypto.js.map +0 -1
  526. package/dist/csrf.d.ts +0 -28
  527. package/dist/csrf.d.ts.map +0 -1
  528. package/dist/csrf.js +0 -79
  529. package/dist/csrf.js.map +0 -1
  530. package/dist/curl-logger.d.ts +0 -44
  531. package/dist/curl-logger.d.ts.map +0 -1
  532. package/dist/curl-logger.js +0 -199
  533. package/dist/curl-logger.js.map +0 -1
  534. package/dist/detect-runtime.d.ts +0 -16
  535. package/dist/detect-runtime.d.ts.map +0 -1
  536. package/dist/detect-runtime.js +0 -13
  537. package/dist/detect-runtime.js.map +0 -1
  538. package/dist/dict.d.ts +0 -11
  539. package/dist/dict.d.ts.map +0 -1
  540. package/dist/dict.js +0 -13
  541. package/dist/dict.js.map +0 -1
  542. package/dist/error.d.ts +0 -21
  543. package/dist/error.d.ts.map +0 -1
  544. package/dist/error.js +0 -44
  545. package/dist/error.js.map +0 -1
  546. package/dist/errors.d.ts +0 -40
  547. package/dist/errors.d.ts.map +0 -1
  548. package/dist/errors.js +0 -39
  549. package/dist/errors.js.map +0 -1
  550. package/dist/etag.d.ts +0 -11
  551. package/dist/etag.d.ts.map +0 -1
  552. package/dist/etag.js +0 -82
  553. package/dist/etag.js.map +0 -1
  554. package/dist/feature-detect.d.ts +0 -25
  555. package/dist/feature-detect.d.ts.map +0 -1
  556. package/dist/feature-detect.js +0 -144
  557. package/dist/feature-detect.js.map +0 -1
  558. package/dist/feature-load.d.ts +0 -3
  559. package/dist/feature-load.d.ts.map +0 -1
  560. package/dist/feature-load.js +0 -36
  561. package/dist/feature-load.js.map +0 -1
  562. package/dist/feature-slots.d.ts +0 -44
  563. package/dist/feature-slots.d.ts.map +0 -1
  564. package/dist/feature-slots.js +0 -48
  565. package/dist/feature-slots.js.map +0 -1
  566. package/dist/fetch-request.d.ts +0 -10
  567. package/dist/fetch-request.d.ts.map +0 -1
  568. package/dist/fetch-request.js +0 -13
  569. package/dist/fetch-request.js.map +0 -1
  570. package/dist/gen-process.d.ts +0 -15
  571. package/dist/gen-process.d.ts.map +0 -1
  572. package/dist/gen-process.js +0 -43
  573. package/dist/gen-process.js.map +0 -1
  574. package/dist/gen-write.d.ts +0 -19
  575. package/dist/gen-write.d.ts.map +0 -1
  576. package/dist/gen-write.js +0 -120
  577. package/dist/gen-write.js.map +0 -1
  578. package/dist/glob.d.ts +0 -21
  579. package/dist/glob.d.ts.map +0 -1
  580. package/dist/glob.js +0 -115
  581. package/dist/glob.js.map +0 -1
  582. package/dist/go-type-emitter.d.ts +0 -47
  583. package/dist/go-type-emitter.d.ts.map +0 -1
  584. package/dist/go-type-emitter.js +0 -594
  585. package/dist/go-type-emitter.js.map +0 -1
  586. package/dist/honey-response.d.ts +0 -82
  587. package/dist/honey-response.d.ts.map +0 -1
  588. package/dist/honey-response.js +0 -338
  589. package/dist/honey-response.js.map +0 -1
  590. package/dist/i18n-slot.d.ts +0 -15
  591. package/dist/i18n-slot.d.ts.map +0 -1
  592. package/dist/i18n-slot.js +0 -14
  593. package/dist/i18n-slot.js.map +0 -1
  594. package/dist/i18n.d.ts +0 -29
  595. package/dist/i18n.d.ts.map +0 -1
  596. package/dist/i18n.js +0 -250
  597. package/dist/i18n.js.map +0 -1
  598. package/dist/index.d.ts.map +0 -1
  599. package/dist/index.js.map +0 -1
  600. package/dist/init.d.ts +0 -5
  601. package/dist/init.d.ts.map +0 -1
  602. package/dist/init.js +0 -140
  603. package/dist/init.js.map +0 -1
  604. package/dist/input.d.ts +0 -6
  605. package/dist/input.d.ts.map +0 -1
  606. package/dist/input.js +0 -4
  607. package/dist/input.js.map +0 -1
  608. package/dist/invalidate-check.d.ts +0 -61
  609. package/dist/invalidate-check.d.ts.map +0 -1
  610. package/dist/invalidate-check.js +0 -163
  611. package/dist/invalidate-check.js.map +0 -1
  612. package/dist/invoke-user.d.ts +0 -35
  613. package/dist/invoke-user.d.ts.map +0 -1
  614. package/dist/invoke-user.js +0 -73
  615. package/dist/invoke-user.js.map +0 -1
  616. package/dist/ip-restrict.d.ts +0 -24
  617. package/dist/ip-restrict.d.ts.map +0 -1
  618. package/dist/ip-restrict.js +0 -60
  619. package/dist/ip-restrict.js.map +0 -1
  620. package/dist/ip.d.ts +0 -39
  621. package/dist/ip.d.ts.map +0 -1
  622. package/dist/ip.js +0 -209
  623. package/dist/ip.js.map +0 -1
  624. package/dist/logger.d.ts +0 -45
  625. package/dist/logger.d.ts.map +0 -1
  626. package/dist/logger.js +0 -113
  627. package/dist/logger.js.map +0 -1
  628. package/dist/media-type.d.ts +0 -30
  629. package/dist/media-type.d.ts.map +0 -1
  630. package/dist/media-type.js +0 -97
  631. package/dist/media-type.js.map +0 -1
  632. package/dist/meta-spec-merge.d.ts +0 -32
  633. package/dist/meta-spec-merge.d.ts.map +0 -1
  634. package/dist/meta-spec-merge.js +0 -68
  635. package/dist/meta-spec-merge.js.map +0 -1
  636. package/dist/meta-spec.d.ts +0 -94
  637. package/dist/meta-spec.d.ts.map +0 -1
  638. package/dist/meta-spec.js +0 -535
  639. package/dist/meta-spec.js.map +0 -1
  640. package/dist/middleware.d.ts +0 -77
  641. package/dist/middleware.d.ts.map +0 -1
  642. package/dist/middleware.js +0 -253
  643. package/dist/middleware.js.map +0 -1
  644. package/dist/node-request.d.ts +0 -104
  645. package/dist/node-request.d.ts.map +0 -1
  646. package/dist/node-request.js +0 -407
  647. package/dist/node-request.js.map +0 -1
  648. package/dist/node.d.ts +0 -30
  649. package/dist/node.d.ts.map +0 -1
  650. package/dist/node.js +0 -396
  651. package/dist/node.js.map +0 -1
  652. package/dist/openapi/collect.d.ts.map +0 -1
  653. package/dist/openapi/collect.js.map +0 -1
  654. package/dist/openapi/docs-page.d.ts.map +0 -1
  655. package/dist/openapi/docs-page.js.map +0 -1
  656. package/dist/openapi/document.d.ts.map +0 -1
  657. package/dist/openapi/document.js.map +0 -1
  658. package/dist/openapi/json-schema-slot.d.ts +0 -12
  659. package/dist/openapi/json-schema-slot.d.ts.map +0 -1
  660. package/dist/openapi/json-schema-slot.js +0 -38
  661. package/dist/openapi/json-schema-slot.js.map +0 -1
  662. package/dist/openapi/register.d.ts.map +0 -1
  663. package/dist/openapi/register.js.map +0 -1
  664. package/dist/openapi/scalar.d.ts.map +0 -1
  665. package/dist/openapi/scalar.js.map +0 -1
  666. package/dist/openapi/serve.d.ts.map +0 -1
  667. package/dist/openapi/serve.js.map +0 -1
  668. package/dist/openapi/spec-factory.d.ts +0 -65
  669. package/dist/openapi/spec-factory.d.ts.map +0 -1
  670. package/dist/openapi/spec-factory.js +0 -52
  671. package/dist/openapi/spec-factory.js.map +0 -1
  672. package/dist/openapi/spec.d.ts +0 -29
  673. package/dist/openapi/spec.d.ts.map +0 -1
  674. package/dist/openapi/spec.js +0 -50
  675. package/dist/openapi/spec.js.map +0 -1
  676. package/dist/openapi/swagger.d.ts.map +0 -1
  677. package/dist/openapi/swagger.js.map +0 -1
  678. package/dist/pattern.d.ts +0 -71
  679. package/dist/pattern.d.ts.map +0 -1
  680. package/dist/pattern.js +0 -239
  681. package/dist/pattern.js.map +0 -1
  682. package/dist/peer.d.ts +0 -17
  683. package/dist/peer.d.ts.map +0 -1
  684. package/dist/peer.js +0 -50
  685. package/dist/peer.js.map +0 -1
  686. package/dist/plugin.d.ts +0 -228
  687. package/dist/plugin.d.ts.map +0 -1
  688. package/dist/plugin.js +0 -666
  689. package/dist/plugin.js.map +0 -1
  690. package/dist/powered-by.d.ts +0 -7
  691. package/dist/powered-by.d.ts.map +0 -1
  692. package/dist/powered-by.js +0 -11
  693. package/dist/powered-by.js.map +0 -1
  694. package/dist/pretty-json.d.ts +0 -10
  695. package/dist/pretty-json.d.ts.map +0 -1
  696. package/dist/pretty-json.js +0 -47
  697. package/dist/pretty-json.js.map +0 -1
  698. package/dist/producer-stream.d.ts +0 -47
  699. package/dist/producer-stream.d.ts.map +0 -1
  700. package/dist/producer-stream.js +0 -267
  701. package/dist/producer-stream.js.map +0 -1
  702. package/dist/proxy.d.ts +0 -90
  703. package/dist/proxy.d.ts.map +0 -1
  704. package/dist/proxy.js +0 -274
  705. package/dist/proxy.js.map +0 -1
  706. package/dist/python-type-emitter.d.ts +0 -24
  707. package/dist/python-type-emitter.d.ts.map +0 -1
  708. package/dist/python-type-emitter.js +0 -157
  709. package/dist/python-type-emitter.js.map +0 -1
  710. package/dist/realtime/bus.d.ts.map +0 -1
  711. package/dist/realtime/bus.js.map +0 -1
  712. package/dist/realtime/register.d.ts +0 -3
  713. package/dist/realtime/register.d.ts.map +0 -1
  714. package/dist/realtime/register.js +0 -10
  715. package/dist/realtime/register.js.map +0 -1
  716. package/dist/realtime/route.d.ts.map +0 -1
  717. package/dist/realtime/route.js.map +0 -1
  718. package/dist/realtime/server.d.ts.map +0 -1
  719. package/dist/realtime/server.js.map +0 -1
  720. package/dist/request-id.d.ts +0 -19
  721. package/dist/request-id.d.ts.map +0 -1
  722. package/dist/request-id.js +0 -16
  723. package/dist/request-id.js.map +0 -1
  724. package/dist/request-limits.d.ts +0 -3
  725. package/dist/request-limits.d.ts.map +0 -1
  726. package/dist/request-limits.js +0 -3
  727. package/dist/request-limits.js.map +0 -1
  728. package/dist/request-path.d.ts +0 -33
  729. package/dist/request-path.d.ts.map +0 -1
  730. package/dist/request-path.js +0 -178
  731. package/dist/request-path.js.map +0 -1
  732. package/dist/request-to-curl.d.ts +0 -15
  733. package/dist/request-to-curl.d.ts.map +0 -1
  734. package/dist/request-to-curl.js +0 -48
  735. package/dist/request-to-curl.js.map +0 -1
  736. package/dist/response.d.ts +0 -86
  737. package/dist/response.d.ts.map +0 -1
  738. package/dist/response.js +0 -313
  739. package/dist/response.js.map +0 -1
  740. package/dist/rust-type-emitter.d.ts +0 -44
  741. package/dist/rust-type-emitter.d.ts.map +0 -1
  742. package/dist/rust-type-emitter.js +0 -463
  743. package/dist/rust-type-emitter.js.map +0 -1
  744. package/dist/secure-headers.d.ts +0 -16
  745. package/dist/secure-headers.d.ts.map +0 -1
  746. package/dist/secure-headers.js +0 -53
  747. package/dist/secure-headers.js.map +0 -1
  748. package/dist/serve-register.d.ts +0 -6
  749. package/dist/serve-register.d.ts.map +0 -1
  750. package/dist/serve-register.js +0 -9
  751. package/dist/serve-register.js.map +0 -1
  752. package/dist/serve-slot.d.ts +0 -9
  753. package/dist/serve-slot.d.ts.map +0 -1
  754. package/dist/serve-slot.js +0 -52
  755. package/dist/serve-slot.js.map +0 -1
  756. package/dist/serve.d.ts +0 -38
  757. package/dist/serve.d.ts.map +0 -1
  758. package/dist/serve.js +0 -157
  759. package/dist/serve.js.map +0 -1
  760. package/dist/server-timing.d.ts +0 -9
  761. package/dist/server-timing.d.ts.map +0 -1
  762. package/dist/server-timing.js +0 -51
  763. package/dist/server-timing.js.map +0 -1
  764. package/dist/static.d.ts +0 -21
  765. package/dist/static.d.ts.map +0 -1
  766. package/dist/static.js +0 -102
  767. package/dist/static.js.map +0 -1
  768. package/dist/telemetry/otel.d.ts.map +0 -1
  769. package/dist/telemetry/otel.js.map +0 -1
  770. package/dist/testing.d.ts +0 -36
  771. package/dist/testing.d.ts.map +0 -1
  772. package/dist/testing.js +0 -124
  773. package/dist/testing.js.map +0 -1
  774. package/dist/timeout.d.ts +0 -13
  775. package/dist/timeout.d.ts.map +0 -1
  776. package/dist/timeout.js +0 -36
  777. package/dist/timeout.js.map +0 -1
  778. package/dist/tree.d.ts +0 -197
  779. package/dist/tree.d.ts.map +0 -1
  780. package/dist/tree.js +0 -437
  781. package/dist/tree.js.map +0 -1
  782. package/dist/trust.d.ts +0 -21
  783. package/dist/trust.d.ts.map +0 -1
  784. package/dist/trust.js +0 -100
  785. package/dist/trust.js.map +0 -1
  786. package/dist/ts-type-emitter.d.ts +0 -8
  787. package/dist/ts-type-emitter.d.ts.map +0 -1
  788. package/dist/ts-type-emitter.js +0 -150
  789. package/dist/ts-type-emitter.js.map +0 -1
  790. package/dist/type-emitter.d.ts +0 -36
  791. package/dist/type-emitter.d.ts.map +0 -1
  792. package/dist/type-emitter.js +0 -729
  793. package/dist/type-emitter.js.map +0 -1
  794. package/dist/type-extractor.d.ts +0 -43
  795. package/dist/type-extractor.d.ts.map +0 -1
  796. package/dist/type-extractor.js +0 -819
  797. package/dist/type-extractor.js.map +0 -1
  798. package/dist/types.d.ts +0 -467
  799. package/dist/types.d.ts.map +0 -1
  800. package/dist/types.js +0 -96
  801. package/dist/types.js.map +0 -1
  802. package/dist/validation.d.ts +0 -31
  803. package/dist/validation.d.ts.map +0 -1
  804. package/dist/validation.js +0 -335
  805. package/dist/validation.js.map +0 -1
  806. package/dist/with-headers.d.ts +0 -15
  807. package/dist/with-headers.d.ts.map +0 -1
  808. package/dist/with-headers.js +0 -45
  809. package/dist/with-headers.js.map +0 -1
  810. package/dist/ws/bun.d.ts.map +0 -1
  811. package/dist/ws/bun.js.map +0 -1
  812. package/dist/ws/cloudflare.d.ts.map +0 -1
  813. package/dist/ws/cloudflare.js.map +0 -1
  814. package/dist/ws/deno.d.ts +0 -13
  815. package/dist/ws/deno.d.ts.map +0 -1
  816. package/dist/ws/deno.js +0 -133
  817. package/dist/ws/deno.js.map +0 -1
  818. package/dist/ws/node.d.ts.map +0 -1
  819. package/dist/ws/node.js.map +0 -1
  820. package/dist/ws/session.d.ts.map +0 -1
  821. package/dist/ws/session.js.map +0 -1
  822. package/dist/ws/shared.d.ts.map +0 -1
  823. package/dist/ws/shared.js.map +0 -1
  824. package/dist/ws-origin.d.ts +0 -20
  825. package/dist/ws-origin.d.ts.map +0 -1
  826. package/dist/ws-origin.js +0 -41
  827. package/dist/ws-origin.js.map +0 -1
  828. package/dist/yaml.d.ts +0 -18
  829. package/dist/yaml.d.ts.map +0 -1
  830. package/dist/yaml.js +0 -101
  831. package/dist/yaml.js.map +0 -1
  832. package/docs/api-ref/go.md +0 -399
  833. package/docs/api-ref/python.md +0 -399
  834. package/docs/api-ref/rust.md +0 -399
  835. package/docs/api-ref/typescript.md +0 -399
  836. package/docs/invalidate-spec.md +0 -333
  837. package/docs/meta-spec.md +0 -555
  838. package/docs/packaging.md +0 -104
  839. package/docs/regression-matrix/README.md +0 -32
  840. package/docs/regression-matrix/review.md +0 -44
  841. package/docs/regression-matrix/ws1-3.md +0 -97
  842. package/docs/regression-matrix/ws4-8.md +0 -107
  843. package/docs/regression-matrix/ws9-12.md +0 -266
  844. package/docs/sdk.md +0 -798
  845. package/src/accepts.ts +0 -136
  846. package/src/body-kind.ts +0 -67
  847. package/src/body-limit.ts +0 -152
  848. package/src/build/index.ts +0 -217
  849. package/src/cli-args.ts +0 -123
  850. package/src/cli-go/auth.go +0 -26
  851. package/src/cli-go/config.go +0 -192
  852. package/src/cli-go/errors.go +0 -75
  853. package/src/cli-go/multipart.go +0 -79
  854. package/src/cli-go/output.go +0 -163
  855. package/src/cli-go/root.go +0 -30
  856. package/src/cli-go/stream.go +0 -88
  857. package/src/cli-go/version.go +0 -5
  858. package/src/cli.ts +0 -209
  859. package/src/client/defaults.ts +0 -47
  860. package/src/client/error.ts +0 -82
  861. package/src/client/http.ts +0 -737
  862. package/src/client/index.ts +0 -157
  863. package/src/client/path.ts +0 -169
  864. package/src/client/redirect-policy.ts +0 -19
  865. package/src/client/sdk.ts +0 -351
  866. package/src/client/sse.ts +0 -128
  867. package/src/client/types.ts +0 -206
  868. package/src/client/ws.ts +0 -149
  869. package/src/client-go/errors.go +0 -236
  870. package/src/client-go/export.go +0 -44
  871. package/src/client-go/invalidation.go +0 -371
  872. package/src/client-go/nullable.go +0 -62
  873. package/src/client-go/realtime.go +0 -354
  874. package/src/client-go/result.go +0 -20
  875. package/src/client-go/runtime.go +0 -975
  876. package/src/client-go/sse.go +0 -159
  877. package/src/client-go/transport.go +0 -495
  878. package/src/client-go/ws.go +0 -128
  879. package/src/client-info.ts +0 -79
  880. package/src/client-mcp/README.md +0 -10
  881. package/src/client-mcp/server.ts +0 -221
  882. package/src/client-mcp/types.ts +0 -19
  883. package/src/client-python/_errors.py +0 -115
  884. package/src/client-python/_invalidation.py +0 -494
  885. package/src/client-python/_realtime.py +0 -179
  886. package/src/client-python/_runtime.py +0 -860
  887. package/src/client-python/_sse.py +0 -155
  888. package/src/client-python/_transport.py +0 -366
  889. package/src/client-python/_ws.py +0 -159
  890. package/src/client-python/py.typed +0 -0
  891. package/src/client-rust/errors.rs +0 -220
  892. package/src/client-rust/invalidation.rs +0 -412
  893. package/src/client-rust/invalidation_sync.rs +0 -93
  894. package/src/client-rust/nullable.rs +0 -17
  895. package/src/client-rust/realtime.rs +0 -702
  896. package/src/client-rust/result.rs +0 -22
  897. package/src/client-rust/runtime.rs +0 -980
  898. package/src/client-rust/runtime_sync.rs +0 -484
  899. package/src/client-rust/sse.rs +0 -188
  900. package/src/client-rust/ws.rs +0 -167
  901. package/src/codegen-go-cli.ts +0 -1066
  902. package/src/codegen-go.ts +0 -970
  903. package/src/codegen-hash.ts +0 -8
  904. package/src/codegen-ir.ts +0 -812
  905. package/src/codegen-lang.ts +0 -517
  906. package/src/codegen-load.ts +0 -150
  907. package/src/codegen-loaders.ts +0 -50
  908. package/src/codegen-mcp.ts +0 -445
  909. package/src/codegen-python.ts +0 -916
  910. package/src/codegen-route-tree-intern.ts +0 -198
  911. package/src/codegen-rust.ts +0 -1402
  912. package/src/codegen-sanitize.ts +0 -57
  913. package/src/codegen-schema-naming.ts +0 -165
  914. package/src/codegen-sdk-model.ts +0 -228
  915. package/src/codegen.ts +0 -5089
  916. package/src/context.ts +0 -325
  917. package/src/cookie-sign.ts +0 -119
  918. package/src/cookie.ts +0 -143
  919. package/src/cors.ts +0 -95
  920. package/src/crypto.ts +0 -38
  921. package/src/csrf.ts +0 -86
  922. package/src/curl-logger.ts +0 -258
  923. package/src/detect-runtime.ts +0 -17
  924. package/src/dict.ts +0 -12
  925. package/src/error.ts +0 -55
  926. package/src/errors.ts +0 -85
  927. package/src/etag.ts +0 -97
  928. package/src/feature-detect.ts +0 -147
  929. package/src/feature-load.ts +0 -23
  930. package/src/feature-slots.ts +0 -70
  931. package/src/fetch-request.ts +0 -13
  932. package/src/gen-process.ts +0 -42
  933. package/src/gen-write.ts +0 -127
  934. package/src/glob.ts +0 -109
  935. package/src/go-type-emitter.ts +0 -660
  936. package/src/honey-response.ts +0 -379
  937. package/src/i18n-slot.ts +0 -30
  938. package/src/i18n.ts +0 -300
  939. package/src/index.ts +0 -3829
  940. package/src/init.ts +0 -161
  941. package/src/input.ts +0 -8
  942. package/src/invalidate-check.ts +0 -205
  943. package/src/invoke-user.ts +0 -95
  944. package/src/ip-restrict.ts +0 -79
  945. package/src/ip.ts +0 -194
  946. package/src/logger.ts +0 -178
  947. package/src/media-type.ts +0 -104
  948. package/src/meta-spec-merge.ts +0 -80
  949. package/src/meta-spec.ts +0 -718
  950. package/src/middleware.ts +0 -331
  951. package/src/node-request.ts +0 -431
  952. package/src/node.ts +0 -454
  953. package/src/openapi/collect.ts +0 -50
  954. package/src/openapi/docs-page.ts +0 -89
  955. package/src/openapi/document.ts +0 -902
  956. package/src/openapi/json-schema-slot.ts +0 -53
  957. package/src/openapi/register.ts +0 -23
  958. package/src/openapi/scalar.ts +0 -34
  959. package/src/openapi/serve.ts +0 -39
  960. package/src/openapi/spec-factory.ts +0 -100
  961. package/src/openapi/spec.ts +0 -74
  962. package/src/openapi/swagger.ts +0 -35
  963. package/src/pattern.ts +0 -245
  964. package/src/peer.ts +0 -53
  965. package/src/plugin.ts +0 -864
  966. package/src/powered-by.ts +0 -18
  967. package/src/pretty-json.ts +0 -56
  968. package/src/producer-stream.ts +0 -296
  969. package/src/proxy.ts +0 -370
  970. package/src/python-type-emitter.ts +0 -181
  971. package/src/realtime/bus.ts +0 -140
  972. package/src/realtime/register.ts +0 -13
  973. package/src/realtime/route.ts +0 -153
  974. package/src/realtime/server.ts +0 -298
  975. package/src/request-id.ts +0 -32
  976. package/src/request-limits.ts +0 -2
  977. package/src/request-path.ts +0 -165
  978. package/src/request-to-curl.ts +0 -52
  979. package/src/response.ts +0 -411
  980. package/src/rust-type-emitter.ts +0 -548
  981. package/src/secure-headers.ts +0 -74
  982. package/src/serve-register.ts +0 -12
  983. package/src/serve-slot.ts +0 -58
  984. package/src/serve.ts +0 -220
  985. package/src/server-timing.ts +0 -71
  986. package/src/static.ts +0 -112
  987. package/src/telemetry/otel.ts +0 -156
  988. package/src/testing.ts +0 -167
  989. package/src/timeout.ts +0 -45
  990. package/src/tree.ts +0 -558
  991. package/src/trust.ts +0 -117
  992. package/src/ts-type-emitter.ts +0 -168
  993. package/src/type-emitter.ts +0 -760
  994. package/src/type-extractor.ts +0 -855
  995. package/src/types.ts +0 -756
  996. package/src/validation.ts +0 -413
  997. package/src/with-headers.ts +0 -45
  998. package/src/ws/bun.ts +0 -120
  999. package/src/ws/cloudflare.ts +0 -192
  1000. package/src/ws/deno.ts +0 -188
  1001. package/src/ws/node.ts +0 -240
  1002. package/src/ws/session.ts +0 -73
  1003. package/src/ws/shared.ts +0 -140
  1004. package/src/ws-origin.ts +0 -53
  1005. package/src/yaml.ts +0 -103
@@ -0,0 +1,41 @@
1
+ import { pathInScope } from "./pattern.js";
2
+ /** The error keys a middleware declares (`defineMiddleware`). */
3
+ export function errorsOf(mw) {
4
+ return mw.errors;
5
+ }
6
+ /** The factory a middleware's error keys come from (`defineMiddleware`). */
7
+ export function errorFactoryOf(mw) {
8
+ return mw.errorFactory;
9
+ }
10
+ /** A scoped middleware behind a request-path check: it runs only when the path is inside the scope. */
11
+ export function scopeGuard(segs, mw) {
12
+ const guard = (ctx, next) => (pathInScope(ctx.path, segs) ? mw(ctx, next) : next());
13
+ Object.defineProperty(guard, "name", { configurable: true, value: mw.name });
14
+ const errors = errorsOf(mw);
15
+ const factory = errorFactoryOf(mw);
16
+ const meta = mw.meta;
17
+ if (errors)
18
+ Object.defineProperty(guard, "errors", { value: errors });
19
+ if (factory)
20
+ Object.defineProperty(guard, "errorFactory", { value: factory });
21
+ if (meta)
22
+ Object.defineProperty(guard, "meta", { value: meta });
23
+ return guard;
24
+ }
25
+ /** The longest run of middleware every chain starts with: what 404 and 405 run. */
26
+ export function commonPrefix(chains) {
27
+ const [first, ...rest] = chains;
28
+ if (first === undefined)
29
+ return [];
30
+ let n = first.length;
31
+ for (const chain of rest) {
32
+ let i = 0;
33
+ while (i < n && i < chain.length && chain[i] === first[i])
34
+ i++;
35
+ n = i;
36
+ }
37
+ return first.slice(0, n);
38
+ }
39
+ export function describeMw(mw) {
40
+ return mw.name ? `"${mw.name}"` : "an anonymous middleware";
41
+ }
@@ -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[];