@lovrozagar/honey 0.6.8 → 0.7.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 (674) hide show
  1. package/README.md +514 -192
  2. package/bin/honey.js +25 -0
  3. package/dist/accepts.d.ts +7 -1
  4. package/dist/accepts.d.ts.map +1 -1
  5. package/dist/accepts.js +126 -0
  6. package/dist/accepts.js.map +1 -0
  7. package/dist/body-kind.d.ts +26 -0
  8. package/dist/body-kind.d.ts.map +1 -0
  9. package/dist/body-kind.js +70 -0
  10. package/dist/body-kind.js.map +1 -0
  11. package/dist/body-limit.d.ts +5 -1
  12. package/dist/body-limit.d.ts.map +1 -1
  13. package/dist/body-limit.js +126 -0
  14. package/dist/body-limit.js.map +1 -0
  15. package/dist/build/index.d.ts +19 -3
  16. package/dist/build/index.d.ts.map +1 -1
  17. package/dist/build/index.js +173 -0
  18. package/dist/build/index.js.map +1 -0
  19. package/dist/cli-args.d.ts +33 -0
  20. package/dist/cli-args.d.ts.map +1 -0
  21. package/dist/cli-args.js +102 -0
  22. package/dist/cli-args.js.map +1 -0
  23. package/dist/cli-go/auth.go +26 -0
  24. package/dist/cli-go/config.go +192 -0
  25. package/dist/cli-go/errors.go +75 -0
  26. package/dist/cli-go/multipart.go +79 -0
  27. package/dist/cli-go/output.go +163 -0
  28. package/dist/cli-go/root.go +30 -0
  29. package/dist/cli-go/stream.go +88 -0
  30. package/dist/cli-go/version.go +5 -0
  31. package/dist/cli.d.ts +1 -1
  32. package/dist/cli.js +209 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/client/defaults.js +48 -0
  35. package/dist/client/defaults.js.map +1 -0
  36. package/dist/client/error.d.ts +35 -0
  37. package/dist/client/error.d.ts.map +1 -1
  38. package/dist/client/error.js +71 -0
  39. package/dist/client/error.js.map +1 -0
  40. package/dist/client/http.d.ts +67 -8
  41. package/dist/client/http.d.ts.map +1 -1
  42. package/dist/client/http.js +571 -0
  43. package/dist/client/http.js.map +1 -0
  44. package/dist/client/index.d.ts +3 -2
  45. package/dist/client/index.d.ts.map +1 -1
  46. package/dist/client/index.js +95 -0
  47. package/dist/client/index.js.map +1 -0
  48. package/dist/client/path.d.ts +26 -0
  49. package/dist/client/path.d.ts.map +1 -0
  50. package/dist/client/path.js +163 -0
  51. package/dist/client/path.js.map +1 -0
  52. package/dist/client/redirect-policy.d.ts +12 -0
  53. package/dist/client/redirect-policy.d.ts.map +1 -0
  54. package/dist/client/redirect-policy.js +20 -0
  55. package/dist/client/redirect-policy.js.map +1 -0
  56. package/dist/client/sdk.d.ts +36 -0
  57. package/dist/client/sdk.d.ts.map +1 -1
  58. package/dist/client/sdk.js +292 -0
  59. package/dist/client/sdk.js.map +1 -0
  60. package/dist/client/sse.d.ts +13 -0
  61. package/dist/client/sse.d.ts.map +1 -1
  62. package/dist/client/sse.js +129 -0
  63. package/dist/client/sse.js.map +1 -0
  64. package/dist/client/types.js +2 -0
  65. package/dist/client/types.js.map +1 -0
  66. package/dist/client/ws.d.ts +9 -2
  67. package/dist/client/ws.d.ts.map +1 -1
  68. package/dist/client/ws.js +112 -0
  69. package/dist/client/ws.js.map +1 -0
  70. package/dist/client-go/errors.go +236 -0
  71. package/dist/client-go/export.go +44 -0
  72. package/dist/client-go/invalidation.go +371 -0
  73. package/dist/client-go/nullable.go +62 -0
  74. package/dist/client-go/realtime.go +354 -0
  75. package/dist/client-go/result.go +20 -0
  76. package/dist/client-go/runtime.go +975 -0
  77. package/dist/client-go/sse.go +159 -0
  78. package/dist/client-go/transport.go +495 -0
  79. package/dist/client-go/ws.go +128 -0
  80. package/dist/client-info.d.ts +36 -0
  81. package/dist/client-info.d.ts.map +1 -0
  82. package/dist/client-info.js +53 -0
  83. package/dist/client-info.js.map +1 -0
  84. package/dist/client-mcp/README.md +10 -0
  85. package/dist/client-mcp/server.ts +221 -0
  86. package/dist/client-mcp/types.ts +19 -0
  87. package/dist/client-python/_errors.py +115 -0
  88. package/dist/client-python/_invalidation.py +494 -0
  89. package/dist/client-python/_realtime.py +179 -0
  90. package/dist/client-python/_runtime.py +860 -0
  91. package/dist/client-python/_sse.py +155 -0
  92. package/dist/client-python/_transport.py +366 -0
  93. package/dist/client-python/_ws.py +159 -0
  94. package/dist/client-python/py.typed +0 -0
  95. package/dist/client-rust/errors.rs +220 -0
  96. package/dist/client-rust/invalidation.rs +412 -0
  97. package/dist/client-rust/invalidation_sync.rs +93 -0
  98. package/dist/client-rust/nullable.rs +17 -0
  99. package/dist/client-rust/realtime.rs +702 -0
  100. package/dist/client-rust/result.rs +22 -0
  101. package/dist/client-rust/runtime.rs +980 -0
  102. package/dist/client-rust/runtime_sync.rs +484 -0
  103. package/dist/client-rust/sse.rs +188 -0
  104. package/dist/client-rust/ws.rs +167 -0
  105. package/dist/codegen-go-cli.d.ts.map +1 -1
  106. package/dist/codegen-go-cli.js +964 -0
  107. package/dist/codegen-go-cli.js.map +1 -0
  108. package/dist/codegen-go.d.ts +15 -3
  109. package/dist/codegen-go.d.ts.map +1 -1
  110. package/dist/codegen-go.js +872 -0
  111. package/dist/codegen-go.js.map +1 -0
  112. package/dist/codegen-hash.js +9 -0
  113. package/dist/codegen-hash.js.map +1 -0
  114. package/dist/codegen-ir.d.ts +69 -2
  115. package/dist/codegen-ir.d.ts.map +1 -1
  116. package/dist/codegen-ir.js +661 -0
  117. package/dist/codegen-ir.js.map +1 -0
  118. package/dist/codegen-lang.d.ts +65 -0
  119. package/dist/codegen-lang.d.ts.map +1 -0
  120. package/dist/codegen-lang.js +526 -0
  121. package/dist/codegen-lang.js.map +1 -0
  122. package/dist/codegen-load.d.ts +31 -0
  123. package/dist/codegen-load.d.ts.map +1 -0
  124. package/dist/codegen-load.js +138 -0
  125. package/dist/codegen-load.js.map +1 -0
  126. package/dist/codegen-loaders.js +55 -0
  127. package/dist/codegen-loaders.js.map +1 -0
  128. package/dist/codegen-mcp.d.ts.map +1 -1
  129. package/dist/codegen-mcp.js +368 -0
  130. package/dist/codegen-mcp.js.map +1 -0
  131. package/dist/codegen-python.d.ts +13 -1
  132. package/dist/codegen-python.d.ts.map +1 -1
  133. package/dist/codegen-python.js +828 -0
  134. package/dist/codegen-python.js.map +1 -0
  135. package/dist/codegen-route-tree-intern.d.ts +15 -5
  136. package/dist/codegen-route-tree-intern.d.ts.map +1 -1
  137. package/dist/codegen-route-tree-intern.js +221 -0
  138. package/dist/codegen-route-tree-intern.js.map +1 -0
  139. package/dist/codegen-rust.d.ts.map +1 -1
  140. package/dist/codegen-rust.js +1293 -0
  141. package/dist/codegen-rust.js.map +1 -0
  142. package/dist/codegen-sanitize.d.ts.map +1 -1
  143. package/dist/codegen-sanitize.js +56 -0
  144. package/dist/codegen-sanitize.js.map +1 -0
  145. package/dist/codegen-schema-naming.d.ts +5 -0
  146. package/dist/codegen-schema-naming.d.ts.map +1 -1
  147. package/dist/codegen-schema-naming.js +150 -0
  148. package/dist/codegen-schema-naming.js.map +1 -0
  149. package/dist/codegen-sdk-model.d.ts +71 -0
  150. package/dist/codegen-sdk-model.d.ts.map +1 -0
  151. package/dist/codegen-sdk-model.js +179 -0
  152. package/dist/codegen-sdk-model.js.map +1 -0
  153. package/dist/codegen.d.ts +41 -23
  154. package/dist/codegen.d.ts.map +1 -1
  155. package/dist/codegen.js +4610 -0
  156. package/dist/codegen.js.map +1 -0
  157. package/dist/context.d.ts +36 -6
  158. package/dist/context.d.ts.map +1 -1
  159. package/dist/context.js +242 -0
  160. package/dist/context.js.map +1 -0
  161. package/dist/cookie-sign.d.ts +16 -2
  162. package/dist/cookie-sign.d.ts.map +1 -1
  163. package/dist/cookie-sign.js +104 -0
  164. package/dist/cookie-sign.js.map +1 -0
  165. package/dist/cookie.d.ts +12 -0
  166. package/dist/cookie.d.ts.map +1 -1
  167. package/dist/cookie.js +138 -0
  168. package/dist/cookie.js.map +1 -0
  169. package/dist/cors.d.ts +1 -0
  170. package/dist/cors.d.ts.map +1 -1
  171. package/dist/cors.js +87 -0
  172. package/dist/cors.js.map +1 -0
  173. package/dist/crypto.d.ts +6 -1
  174. package/dist/crypto.d.ts.map +1 -1
  175. package/dist/crypto.js +38 -0
  176. package/dist/crypto.js.map +1 -0
  177. package/dist/csrf.d.ts +19 -0
  178. package/dist/csrf.d.ts.map +1 -1
  179. package/dist/csrf.js +79 -0
  180. package/dist/csrf.js.map +1 -0
  181. package/dist/curl-logger.d.ts +14 -3
  182. package/dist/curl-logger.d.ts.map +1 -1
  183. package/dist/curl-logger.js +199 -0
  184. package/dist/curl-logger.js.map +1 -0
  185. package/dist/detect-runtime.js +13 -0
  186. package/dist/detect-runtime.js.map +1 -0
  187. package/dist/dict.d.ts +11 -0
  188. package/dist/dict.d.ts.map +1 -0
  189. package/dist/dict.js +13 -0
  190. package/dist/dict.js.map +1 -0
  191. package/dist/error.d.ts.map +1 -1
  192. package/dist/error.js +44 -0
  193. package/dist/error.js.map +1 -0
  194. package/dist/errors.js +39 -0
  195. package/dist/errors.js.map +1 -0
  196. package/dist/etag.d.ts +2 -0
  197. package/dist/etag.d.ts.map +1 -1
  198. package/dist/etag.js +82 -0
  199. package/dist/etag.js.map +1 -0
  200. package/dist/feature-detect.d.ts +25 -0
  201. package/dist/feature-detect.d.ts.map +1 -0
  202. package/dist/feature-detect.js +144 -0
  203. package/dist/feature-detect.js.map +1 -0
  204. package/dist/feature-load.js +36 -0
  205. package/dist/feature-load.js.map +1 -0
  206. package/dist/feature-slots.d.ts +44 -0
  207. package/dist/feature-slots.d.ts.map +1 -0
  208. package/dist/feature-slots.js +48 -0
  209. package/dist/feature-slots.js.map +1 -0
  210. package/dist/fetch-request.d.ts +10 -0
  211. package/dist/fetch-request.d.ts.map +1 -0
  212. package/dist/fetch-request.js +13 -0
  213. package/dist/fetch-request.js.map +1 -0
  214. package/dist/gen-process.d.ts +15 -0
  215. package/dist/gen-process.d.ts.map +1 -0
  216. package/dist/gen-process.js +43 -0
  217. package/dist/gen-process.js.map +1 -0
  218. package/dist/gen-write.d.ts +19 -0
  219. package/dist/gen-write.d.ts.map +1 -0
  220. package/dist/gen-write.js +120 -0
  221. package/dist/gen-write.js.map +1 -0
  222. package/dist/glob.d.ts +21 -0
  223. package/dist/glob.d.ts.map +1 -0
  224. package/dist/glob.js +115 -0
  225. package/dist/glob.js.map +1 -0
  226. package/dist/go-type-emitter.d.ts +18 -4
  227. package/dist/go-type-emitter.d.ts.map +1 -1
  228. package/dist/go-type-emitter.js +594 -0
  229. package/dist/go-type-emitter.js.map +1 -0
  230. package/dist/honey-response.d.ts.map +1 -1
  231. package/dist/honey-response.js +338 -0
  232. package/dist/honey-response.js.map +1 -0
  233. package/dist/i18n-slot.d.ts +8 -0
  234. package/dist/i18n-slot.d.ts.map +1 -1
  235. package/dist/i18n-slot.js +14 -0
  236. package/dist/i18n-slot.js.map +1 -0
  237. package/dist/i18n.d.ts +3 -0
  238. package/dist/i18n.d.ts.map +1 -1
  239. package/dist/i18n.js +250 -0
  240. package/dist/i18n.js.map +1 -0
  241. package/dist/index.d.ts +408 -148
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +2324 -0
  244. package/dist/index.js.map +1 -0
  245. package/dist/init.d.ts +3 -5
  246. package/dist/init.d.ts.map +1 -1
  247. package/dist/init.js +140 -0
  248. package/dist/init.js.map +1 -0
  249. package/dist/input.js +4 -0
  250. package/dist/input.js.map +1 -0
  251. package/dist/invalidate-check.d.ts +11 -0
  252. package/dist/invalidate-check.d.ts.map +1 -1
  253. package/dist/invalidate-check.js +163 -0
  254. package/dist/invalidate-check.js.map +1 -0
  255. package/dist/invoke-user.d.ts +35 -0
  256. package/dist/invoke-user.d.ts.map +1 -0
  257. package/dist/invoke-user.js +73 -0
  258. package/dist/invoke-user.js.map +1 -0
  259. package/dist/ip-restrict.d.ts +13 -1
  260. package/dist/ip-restrict.d.ts.map +1 -1
  261. package/dist/ip-restrict.js +60 -0
  262. package/dist/ip-restrict.js.map +1 -0
  263. package/dist/ip.d.ts +39 -0
  264. package/dist/ip.d.ts.map +1 -0
  265. package/dist/ip.js +209 -0
  266. package/dist/ip.js.map +1 -0
  267. package/dist/logger.d.ts.map +1 -1
  268. package/dist/logger.js +113 -0
  269. package/dist/logger.js.map +1 -0
  270. package/dist/media-type.d.ts +30 -0
  271. package/dist/media-type.d.ts.map +1 -0
  272. package/dist/media-type.js +97 -0
  273. package/dist/media-type.js.map +1 -0
  274. package/dist/meta-spec-merge.d.ts +32 -0
  275. package/dist/meta-spec-merge.d.ts.map +1 -0
  276. package/dist/meta-spec-merge.js +68 -0
  277. package/dist/meta-spec-merge.js.map +1 -0
  278. package/dist/meta-spec.d.ts +16 -3
  279. package/dist/meta-spec.d.ts.map +1 -1
  280. package/dist/meta-spec.js +535 -0
  281. package/dist/meta-spec.js.map +1 -0
  282. package/dist/middleware.d.ts +23 -6
  283. package/dist/middleware.d.ts.map +1 -1
  284. package/dist/middleware.js +253 -0
  285. package/dist/middleware.js.map +1 -0
  286. package/dist/node-request.d.ts +57 -12
  287. package/dist/node-request.d.ts.map +1 -1
  288. package/dist/node-request.js +407 -0
  289. package/dist/node-request.js.map +1 -0
  290. package/dist/node.d.ts +20 -3
  291. package/dist/node.d.ts.map +1 -1
  292. package/dist/node.js +396 -0
  293. package/dist/node.js.map +1 -0
  294. package/dist/openapi/collect.d.ts +6 -3
  295. package/dist/openapi/collect.d.ts.map +1 -1
  296. package/dist/openapi/collect.js +30 -0
  297. package/dist/openapi/collect.js.map +1 -0
  298. package/dist/openapi/docs-page.d.ts +42 -0
  299. package/dist/openapi/docs-page.d.ts.map +1 -0
  300. package/dist/openapi/docs-page.js +80 -0
  301. package/dist/openapi/docs-page.js.map +1 -0
  302. package/dist/openapi/document.d.ts +4 -0
  303. package/dist/openapi/document.d.ts.map +1 -1
  304. package/dist/openapi/document.js +785 -0
  305. package/dist/openapi/document.js.map +1 -0
  306. package/dist/openapi/json-schema-slot.d.ts +7 -0
  307. package/dist/openapi/json-schema-slot.d.ts.map +1 -1
  308. package/dist/openapi/json-schema-slot.js +38 -0
  309. package/dist/openapi/json-schema-slot.js.map +1 -0
  310. package/dist/openapi/register.d.ts.map +1 -1
  311. package/dist/openapi/register.js +20 -0
  312. package/dist/openapi/register.js.map +1 -0
  313. package/dist/openapi/scalar.d.ts +3 -1
  314. package/dist/openapi/scalar.d.ts.map +1 -1
  315. package/dist/openapi/scalar.js +21 -0
  316. package/dist/openapi/scalar.js.map +1 -0
  317. package/dist/openapi/serve.d.ts +9 -0
  318. package/dist/openapi/serve.d.ts.map +1 -0
  319. package/dist/openapi/serve.js +36 -0
  320. package/dist/openapi/serve.js.map +1 -0
  321. package/dist/openapi/spec-factory.d.ts +30 -1
  322. package/dist/openapi/spec-factory.d.ts.map +1 -1
  323. package/dist/openapi/spec-factory.js +52 -0
  324. package/dist/openapi/spec-factory.js.map +1 -0
  325. package/dist/openapi/spec.d.ts +14 -5
  326. package/dist/openapi/spec.d.ts.map +1 -1
  327. package/dist/openapi/spec.js +50 -0
  328. package/dist/openapi/spec.js.map +1 -0
  329. package/dist/openapi/swagger.d.ts +3 -1
  330. package/dist/openapi/swagger.d.ts.map +1 -1
  331. package/dist/openapi/swagger.js +22 -0
  332. package/dist/openapi/swagger.js.map +1 -0
  333. package/dist/pattern.d.ts +71 -0
  334. package/dist/pattern.d.ts.map +1 -0
  335. package/dist/pattern.js +239 -0
  336. package/dist/pattern.js.map +1 -0
  337. package/dist/peer.d.ts +17 -0
  338. package/dist/peer.d.ts.map +1 -0
  339. package/dist/peer.js +50 -0
  340. package/dist/peer.js.map +1 -0
  341. package/dist/plugin.d.ts +67 -16
  342. package/dist/plugin.d.ts.map +1 -1
  343. package/dist/plugin.js +649 -0
  344. package/dist/plugin.js.map +1 -0
  345. package/dist/powered-by.d.ts.map +1 -1
  346. package/dist/powered-by.js +11 -0
  347. package/dist/powered-by.js.map +1 -0
  348. package/dist/pretty-json.d.ts.map +1 -1
  349. package/dist/pretty-json.js +47 -0
  350. package/dist/pretty-json.js.map +1 -0
  351. package/dist/producer-stream.d.ts +47 -0
  352. package/dist/producer-stream.d.ts.map +1 -0
  353. package/dist/producer-stream.js +267 -0
  354. package/dist/producer-stream.js.map +1 -0
  355. package/dist/proxy.d.ts +47 -8
  356. package/dist/proxy.d.ts.map +1 -1
  357. package/dist/proxy.js +274 -0
  358. package/dist/proxy.js.map +1 -0
  359. package/dist/python-type-emitter.d.ts +14 -1
  360. package/dist/python-type-emitter.d.ts.map +1 -1
  361. package/dist/python-type-emitter.js +157 -0
  362. package/dist/python-type-emitter.js.map +1 -0
  363. package/dist/realtime/bus.d.ts +17 -1
  364. package/dist/realtime/bus.d.ts.map +1 -1
  365. package/dist/realtime/bus.js +112 -0
  366. package/dist/realtime/bus.js.map +1 -0
  367. package/dist/realtime/register.d.ts +3 -0
  368. package/dist/realtime/register.d.ts.map +1 -0
  369. package/dist/realtime/register.js +10 -0
  370. package/dist/realtime/register.js.map +1 -0
  371. package/dist/realtime/route.d.ts +65 -26
  372. package/dist/realtime/route.d.ts.map +1 -1
  373. package/dist/realtime/route.js +72 -0
  374. package/dist/realtime/route.js.map +1 -0
  375. package/dist/realtime/server.d.ts +43 -0
  376. package/dist/realtime/server.d.ts.map +1 -0
  377. package/dist/realtime/server.js +255 -0
  378. package/dist/realtime/server.js.map +1 -0
  379. package/dist/request-id.d.ts +7 -0
  380. package/dist/request-id.d.ts.map +1 -1
  381. package/dist/request-id.js +16 -0
  382. package/dist/request-id.js.map +1 -0
  383. package/dist/request-limits.d.ts +3 -0
  384. package/dist/request-limits.d.ts.map +1 -0
  385. package/dist/request-limits.js +3 -0
  386. package/dist/request-limits.js.map +1 -0
  387. package/dist/request-path.d.ts +33 -0
  388. package/dist/request-path.d.ts.map +1 -0
  389. package/dist/request-path.js +178 -0
  390. package/dist/request-path.js.map +1 -0
  391. package/dist/request-to-curl.d.ts +7 -1
  392. package/dist/request-to-curl.d.ts.map +1 -1
  393. package/dist/request-to-curl.js +48 -0
  394. package/dist/request-to-curl.js.map +1 -0
  395. package/dist/response.d.ts +25 -2
  396. package/dist/response.d.ts.map +1 -1
  397. package/dist/response.js +313 -0
  398. package/dist/response.js.map +1 -0
  399. package/dist/rust-type-emitter.d.ts +14 -2
  400. package/dist/rust-type-emitter.d.ts.map +1 -1
  401. package/dist/rust-type-emitter.js +463 -0
  402. package/dist/rust-type-emitter.js.map +1 -0
  403. package/dist/secure-headers.d.ts.map +1 -1
  404. package/dist/secure-headers.js +53 -0
  405. package/dist/secure-headers.js.map +1 -0
  406. package/dist/serve-register.d.ts +4 -0
  407. package/dist/serve-register.d.ts.map +1 -1
  408. package/dist/serve-register.js +9 -0
  409. package/dist/serve-register.js.map +1 -0
  410. package/dist/serve-slot.d.ts +3 -0
  411. package/dist/serve-slot.d.ts.map +1 -1
  412. package/dist/serve-slot.js +52 -0
  413. package/dist/serve-slot.js.map +1 -0
  414. package/dist/serve.d.ts +18 -1
  415. package/dist/serve.d.ts.map +1 -1
  416. package/dist/serve.js +157 -0
  417. package/dist/serve.js.map +1 -0
  418. package/dist/server-timing.d.ts.map +1 -1
  419. package/dist/server-timing.js +51 -0
  420. package/dist/server-timing.js.map +1 -0
  421. package/dist/static.d.ts +9 -0
  422. package/dist/static.d.ts.map +1 -1
  423. package/dist/static.js +102 -0
  424. package/dist/static.js.map +1 -0
  425. package/dist/telemetry/otel.d.ts +2 -0
  426. package/dist/telemetry/otel.d.ts.map +1 -1
  427. package/dist/telemetry/otel.js +135 -0
  428. package/dist/telemetry/otel.js.map +1 -0
  429. package/dist/testing.d.ts +12 -0
  430. package/dist/testing.d.ts.map +1 -1
  431. package/dist/testing.js +124 -0
  432. package/dist/testing.js.map +1 -0
  433. package/dist/timeout.d.ts +6 -0
  434. package/dist/timeout.d.ts.map +1 -1
  435. package/dist/timeout.js +36 -0
  436. package/dist/timeout.js.map +1 -0
  437. package/dist/tree.d.ts +133 -36
  438. package/dist/tree.d.ts.map +1 -1
  439. package/dist/tree.js +437 -0
  440. package/dist/tree.js.map +1 -0
  441. package/dist/trust.d.ts +21 -0
  442. package/dist/trust.d.ts.map +1 -0
  443. package/dist/trust.js +100 -0
  444. package/dist/trust.js.map +1 -0
  445. package/dist/ts-type-emitter.d.ts.map +1 -1
  446. package/dist/ts-type-emitter.js +150 -0
  447. package/dist/ts-type-emitter.js.map +1 -0
  448. package/dist/type-emitter.d.ts +16 -2
  449. package/dist/type-emitter.d.ts.map +1 -1
  450. package/dist/type-emitter.js +729 -0
  451. package/dist/type-emitter.js.map +1 -0
  452. package/dist/type-extractor.d.ts +8 -4
  453. package/dist/type-extractor.d.ts.map +1 -1
  454. package/dist/type-extractor.js +819 -0
  455. package/dist/type-extractor.js.map +1 -0
  456. package/dist/types.d.ts +7 -0
  457. package/dist/types.d.ts.map +1 -1
  458. package/dist/types.js +96 -0
  459. package/dist/types.js.map +1 -0
  460. package/dist/validation.d.ts +14 -2
  461. package/dist/validation.d.ts.map +1 -1
  462. package/dist/validation.js +335 -0
  463. package/dist/validation.js.map +1 -0
  464. package/dist/with-headers.d.ts +15 -0
  465. package/dist/with-headers.d.ts.map +1 -0
  466. package/dist/with-headers.js +45 -0
  467. package/dist/with-headers.js.map +1 -0
  468. package/dist/ws/bun.d.ts +11 -5
  469. package/dist/ws/bun.d.ts.map +1 -1
  470. package/dist/ws/bun.js +82 -0
  471. package/dist/ws/bun.js.map +1 -0
  472. package/dist/ws/cloudflare.d.ts +25 -3
  473. package/dist/ws/cloudflare.d.ts.map +1 -1
  474. package/dist/ws/cloudflare.js +117 -0
  475. package/dist/ws/cloudflare.js.map +1 -0
  476. package/dist/ws/deno.d.ts +4 -4
  477. package/dist/ws/deno.d.ts.map +1 -1
  478. package/dist/ws/deno.js +133 -0
  479. package/dist/ws/deno.js.map +1 -0
  480. package/dist/ws/node.d.ts +20 -3
  481. package/dist/ws/node.d.ts.map +1 -1
  482. package/dist/ws/node.js +173 -0
  483. package/dist/ws/node.js.map +1 -0
  484. package/dist/ws/session.d.ts +11 -0
  485. package/dist/ws/session.d.ts.map +1 -0
  486. package/dist/ws/session.js +60 -0
  487. package/dist/ws/session.js.map +1 -0
  488. package/dist/ws/shared.d.ts +65 -0
  489. package/dist/ws/shared.d.ts.map +1 -0
  490. package/dist/ws/shared.js +103 -0
  491. package/dist/ws/shared.js.map +1 -0
  492. package/dist/ws-origin.d.ts +20 -0
  493. package/dist/ws-origin.d.ts.map +1 -0
  494. package/dist/ws-origin.js +41 -0
  495. package/dist/ws-origin.js.map +1 -0
  496. package/dist/yaml.d.ts +15 -1
  497. package/dist/yaml.d.ts.map +1 -1
  498. package/dist/yaml.js +101 -0
  499. package/dist/yaml.js.map +1 -0
  500. package/docs/invalidate-spec.md +13 -1
  501. package/docs/meta-spec.md +36 -12
  502. package/docs/packaging.md +43 -24
  503. package/docs/regression-matrix/README.md +32 -0
  504. package/docs/regression-matrix/review.md +44 -0
  505. package/docs/regression-matrix/ws1-3.md +97 -0
  506. package/docs/regression-matrix/ws4-8.md +107 -0
  507. package/docs/regression-matrix/ws9-12.md +266 -0
  508. package/docs/sdk.md +102 -52
  509. package/package.json +183 -52
  510. package/src/accepts.ts +91 -33
  511. package/src/body-kind.ts +67 -0
  512. package/src/body-limit.ts +102 -87
  513. package/src/build/index.ts +104 -54
  514. package/src/cli-args.ts +123 -0
  515. package/src/cli-go/auth.go +12 -1
  516. package/src/cli-go/config.go +29 -2
  517. package/src/cli-go/errors.go +28 -10
  518. package/src/cli-go/multipart.go +51 -27
  519. package/src/cli-go/output.go +58 -4
  520. package/src/cli-go/root.go +1 -1
  521. package/src/cli-go/version.go +2 -2
  522. package/src/cli.ts +154 -148
  523. package/src/client/error.ts +56 -1
  524. package/src/client/http.ts +479 -256
  525. package/src/client/index.ts +55 -17
  526. package/src/client/path.ts +169 -0
  527. package/src/client/redirect-policy.ts +19 -0
  528. package/src/client/sdk.ts +180 -101
  529. package/src/client/sse.ts +92 -66
  530. package/src/client/ws.ts +67 -31
  531. package/src/client-go/errors.go +41 -12
  532. package/src/client-go/export.go +44 -0
  533. package/src/client-go/invalidation.go +52 -54
  534. package/src/client-go/nullable.go +62 -0
  535. package/src/client-go/realtime.go +147 -110
  536. package/src/client-go/runtime.go +646 -88
  537. package/src/client-go/sse.go +104 -94
  538. package/src/client-go/transport.go +67 -27
  539. package/src/client-go/ws.go +49 -25
  540. package/src/client-info.ts +79 -0
  541. package/src/client-mcp/server.ts +133 -3
  542. package/src/client-python/_invalidation.py +207 -291
  543. package/src/client-python/_realtime.py +63 -40
  544. package/src/client-python/_runtime.py +501 -119
  545. package/src/client-python/_sse.py +130 -74
  546. package/src/client-python/_transport.py +37 -9
  547. package/src/client-python/_ws.py +50 -22
  548. package/src/client-rust/errors.rs +21 -1
  549. package/src/client-rust/invalidation.rs +202 -231
  550. package/src/client-rust/invalidation_sync.rs +16 -229
  551. package/src/client-rust/nullable.rs +17 -0
  552. package/src/client-rust/realtime.rs +217 -217
  553. package/src/client-rust/runtime.rs +602 -177
  554. package/src/client-rust/runtime_sync.rs +169 -145
  555. package/src/client-rust/sse.rs +142 -121
  556. package/src/client-rust/ws.rs +61 -37
  557. package/src/codegen-go-cli.ts +607 -728
  558. package/src/codegen-go.ts +710 -770
  559. package/src/codegen-ir.ts +381 -75
  560. package/src/codegen-lang.ts +517 -0
  561. package/src/codegen-load.ts +150 -0
  562. package/src/codegen-mcp.ts +207 -108
  563. package/src/codegen-python.ts +684 -816
  564. package/src/codegen-route-tree-intern.ts +51 -25
  565. package/src/codegen-rust.ts +946 -1240
  566. package/src/codegen-sanitize.ts +0 -4
  567. package/src/codegen-schema-naming.ts +19 -6
  568. package/src/codegen-sdk-model.ts +228 -0
  569. package/src/codegen.ts +1488 -1140
  570. package/src/context.ts +130 -11
  571. package/src/cookie-sign.ts +85 -16
  572. package/src/cookie.ts +66 -11
  573. package/src/cors.ts +55 -54
  574. package/src/crypto.ts +27 -5
  575. package/src/csrf.ts +57 -25
  576. package/src/curl-logger.ts +155 -114
  577. package/src/dict.ts +12 -0
  578. package/src/error.ts +4 -2
  579. package/src/etag.ts +58 -34
  580. package/src/feature-detect.ts +147 -0
  581. package/src/feature-slots.ts +70 -0
  582. package/src/fetch-request.ts +13 -0
  583. package/src/gen-process.ts +42 -0
  584. package/src/gen-write.ts +127 -0
  585. package/src/glob.ts +109 -0
  586. package/src/go-type-emitter.ts +406 -155
  587. package/src/honey-response.ts +36 -9
  588. package/src/i18n-slot.ts +10 -0
  589. package/src/i18n.ts +98 -23
  590. package/src/index.ts +1887 -1756
  591. package/src/init.ts +40 -28
  592. package/src/invalidate-check.ts +42 -4
  593. package/src/invoke-user.ts +95 -0
  594. package/src/ip-restrict.ts +47 -161
  595. package/src/ip.ts +194 -0
  596. package/src/logger.ts +65 -36
  597. package/src/media-type.ts +104 -0
  598. package/src/meta-spec-merge.ts +80 -0
  599. package/src/meta-spec.ts +0 -0
  600. package/src/middleware.ts +112 -12
  601. package/src/node-request.ts +242 -52
  602. package/src/node.ts +318 -75
  603. package/src/openapi/collect.ts +19 -44
  604. package/src/openapi/docs-page.ts +89 -0
  605. package/src/openapi/document.ts +503 -224
  606. package/src/openapi/json-schema-slot.ts +40 -0
  607. package/src/openapi/register.ts +7 -2
  608. package/src/openapi/scalar.ts +11 -10
  609. package/src/openapi/serve.ts +39 -0
  610. package/src/openapi/spec-factory.ts +50 -1
  611. package/src/openapi/spec.ts +53 -30
  612. package/src/openapi/swagger.ts +12 -11
  613. package/src/pattern.ts +245 -0
  614. package/src/peer.ts +53 -0
  615. package/src/plugin.ts +270 -185
  616. package/src/powered-by.ts +2 -2
  617. package/src/pretty-json.ts +25 -9
  618. package/src/producer-stream.ts +296 -0
  619. package/src/proxy.ts +253 -55
  620. package/src/python-type-emitter.ts +68 -56
  621. package/src/realtime/bus.ts +56 -9
  622. package/src/realtime/register.ts +13 -0
  623. package/src/realtime/route.ts +129 -80
  624. package/src/realtime/server.ts +298 -0
  625. package/src/request-id.ts +13 -3
  626. package/src/request-limits.ts +2 -0
  627. package/src/request-path.ts +165 -0
  628. package/src/request-to-curl.ts +28 -7
  629. package/src/response.ts +143 -103
  630. package/src/rust-type-emitter.ts +265 -170
  631. package/src/secure-headers.ts +8 -4
  632. package/src/serve-register.ts +4 -0
  633. package/src/serve-slot.ts +38 -0
  634. package/src/serve.ts +113 -25
  635. package/src/server-timing.ts +11 -7
  636. package/src/static.ts +85 -32
  637. package/src/telemetry/otel.ts +29 -7
  638. package/src/testing.ts +76 -14
  639. package/src/timeout.ts +15 -7
  640. package/src/tree.ts +405 -333
  641. package/src/trust.ts +117 -0
  642. package/src/ts-type-emitter.ts +18 -12
  643. package/src/type-emitter.ts +227 -89
  644. package/src/type-extractor.ts +603 -423
  645. package/src/types.ts +8 -0
  646. package/src/validation.ts +221 -96
  647. package/src/with-headers.ts +45 -0
  648. package/src/ws/bun.ts +53 -15
  649. package/src/ws/cloudflare.ts +81 -19
  650. package/src/ws/deno.ts +124 -36
  651. package/src/ws/node.ts +173 -79
  652. package/src/ws/session.ts +73 -0
  653. package/src/ws/shared.ts +140 -0
  654. package/src/ws-origin.ts +53 -0
  655. package/src/yaml.ts +45 -22
  656. package/dist/client-mcp/server.d.ts +0 -10
  657. package/dist/client-mcp/server.d.ts.map +0 -1
  658. package/dist/client-mcp/types.d.ts +0 -16
  659. package/dist/client-mcp/types.d.ts.map +0 -1
  660. package/dist/cloudflare/realtime.d.ts +0 -30
  661. package/dist/cloudflare/realtime.d.ts.map +0 -1
  662. package/dist/realtime/buffer.d.ts +0 -18
  663. package/dist/realtime/buffer.d.ts.map +0 -1
  664. package/dist/realtime/longpoll.d.ts +0 -23
  665. package/dist/realtime/longpoll.d.ts.map +0 -1
  666. package/dist/realtime/protocol.d.ts +0 -50
  667. package/dist/realtime/protocol.d.ts.map +0 -1
  668. package/dist/realtime/runtime.d.ts +0 -74
  669. package/dist/realtime/runtime.d.ts.map +0 -1
  670. package/src/cloudflare/realtime.ts +0 -234
  671. package/src/realtime/buffer.ts +0 -101
  672. package/src/realtime/longpoll.ts +0 -148
  673. package/src/realtime/protocol.ts +0 -128
  674. package/src/realtime/runtime.ts +0 -427
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,28 @@
1
1
  import type { IRSchema } from "./codegen-ir.ts";
2
- export declare const RUST_KEYWORDS: Set<string>;
2
+ import { RUST_KEYWORDS, pascalWords } from "./codegen-lang.ts";
3
+ export { RUST_KEYWORDS };
3
4
  export declare function rustPascal(name: string): string;
4
5
  export declare function rustSnake(name: string): string;
5
6
  /** Returns a safe Rust field identifier (snake_case; reserved keywords get `_` suffix). */
6
7
  export declare function rustIdent(name: string): string;
7
8
  /** Returns a safe Rust method identifier (snake_case; reserved keywords get `r#` raw-ident prefix). */
8
9
  export declare function rustMethodIdent(name: string): string;
10
+ /** Crate-level naming shared by every type the SDK emits. */
11
+ export type RustTypeNames = {
12
+ ref: (schemaName: string) => string;
13
+ /** Unique crate-level type name; the same key always gets the same name. */
14
+ hoist: (key: string, base: string) => string;
15
+ /** Component schemas on a by-value cycle; references to them are boxed. */
16
+ cyclic: Set<string>;
17
+ resolve: (schema: IRSchema) => IRSchema;
18
+ };
9
19
  export type RustRenderUseCtx = {
10
20
  parentName: string;
11
21
  fieldName: string;
12
22
  decls: Map<string, string>;
13
23
  circularRefs?: Set<string>;
14
24
  depth?: number;
25
+ names?: RustTypeNames;
15
26
  };
16
27
  /**
17
28
  * Render an IR schema as a Rust type expression for a struct field position.
@@ -22,11 +33,12 @@ export declare function irRenderUseRust(ir: IRSchema, ctx: RustRenderUseCtx, dep
22
33
  * `raw` 4th arg is for the const-with-declared-type branch only: IR `const` kind
23
34
  * strips the type field; `raw.type` provides the override.
24
35
  */
25
- export declare function irRenderTopLevelRust(name: string, ir: IRSchema, decls: Map<string, string>, raw?: Record<string, unknown>): string;
36
+ export declare function irRenderTopLevelRust(name: string, ir: IRSchema, decls: Map<string, string>, raw?: Record<string, unknown>, names?: RustTypeNames): string;
26
37
  /**
27
38
  * Render a schema as a Rust type expression for a struct field position.
28
39
  * Mutates `ctx.decls` when hoisting enums or anonymous structs.
29
40
  */
30
41
  export declare function renderUseRust(schema: Record<string, unknown> | undefined, ctx: RustRenderUseCtx): string;
31
42
  export declare function renderTopLevelRust(name: string, schema: Record<string, unknown>, decls: Map<string, string>): string;
43
+ export { pascalWords };
32
44
  //# sourceMappingURL=rust-type-emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rust-type-emitter.d.ts","sourceRoot":"","sources":["../src/rust-type-emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,eAAO,MAAM,aAAa,aAqDxB,CAAA;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAmED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,SAAI,GAAG,MAAM,CA2FtF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CA4KR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAExG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAEpH"}
1
+ {"version":3,"file":"rust-type-emitter.d.ts","sourceRoot":"","sources":["../src/rust-type-emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEN,aAAa,EAEb,WAAW,EAMX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,4EAA4E;IAC5E,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C,2EAA2E;IAC3E,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAA;CACvC,CAAA;AASD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,aAAa,CAAA;CACrB,CAAA;AAoFD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,SAAI,GAAG,MAAM,CAuFtF;AA+ED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,aAAa,GACnB,MAAM,CAiNR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAExG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAEpH;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,463 @@
1
+ /* Rust type emitter — IR-based printer with raw-schema shims for backward compatibility. */
2
+ import { schemaToIR } from "./codegen-ir.js";
3
+ import { NameScope, RUST_KEYWORDS, cmpCodeUnit, pascalWords, rustPlainSnake, rustString, rustTypeIdent, rustValueIdent, snakeWords, } from "./codegen-lang.js";
4
+ export { RUST_KEYWORDS };
5
+ export function rustPascal(name) {
6
+ return rustTypeIdent(name);
7
+ }
8
+ export function rustSnake(name) {
9
+ return snakeWords(name) || "value";
10
+ }
11
+ /** Returns a safe Rust field identifier (snake_case; reserved keywords get `_` suffix). */
12
+ export function rustIdent(name) {
13
+ return rustPlainSnake(name);
14
+ }
15
+ /** Returns a safe Rust method identifier (snake_case; reserved keywords get `r#` raw-ident prefix). */
16
+ export function rustMethodIdent(name) {
17
+ return rustValueIdent(name);
18
+ }
19
+ const DEFAULT_NAMES = {
20
+ cyclic: new Set(),
21
+ hoist: (_key, base) => base,
22
+ ref: (name) => rustPascal(name),
23
+ resolve: (s) => s,
24
+ };
25
+ function variantName(raw, scope) {
26
+ const base = raw === "" ? "Empty" : rustTypeIdent(raw);
27
+ return scope.claim(base === "Self_" ? "SelfValue" : base);
28
+ }
29
+ function renderHoistedStringEnum(typeName, enumVals) {
30
+ const l = [];
31
+ l.push(`#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]`);
32
+ l.push(`pub enum ${typeName} {`);
33
+ const scope = new NameScope();
34
+ const variants = [];
35
+ for (const raw of enumVals.filter((v) => v !== null).map(String)) {
36
+ const variant = variantName(raw, scope);
37
+ variants.push(variant);
38
+ if (raw !== variant)
39
+ l.push(`\t#[serde(rename = ${rustString(raw)})]`);
40
+ l.push(`\t${variant},`);
41
+ }
42
+ l.push(`}`);
43
+ /* Separate impl block so the derive list stays unchanged — derive(Default) would require
44
+ * #[default] on a variant, which breaks callers that assert the exact derive substring. */
45
+ if (variants.length > 0) {
46
+ l.push(``);
47
+ l.push(`impl Default for ${typeName} {`);
48
+ l.push(`\tfn default() -> Self {`);
49
+ l.push(`\t\tSelf::${variants[0]}`);
50
+ l.push(`\t}`);
51
+ l.push(`}`);
52
+ }
53
+ return l.join("\n");
54
+ }
55
+ function renderHoistedIntEnum(typeName, enumVals) {
56
+ const l = [];
57
+ l.push(`#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize_repr, Deserialize_repr)]`);
58
+ l.push(`#[repr(i64)]`);
59
+ l.push(`pub enum ${typeName} {`);
60
+ for (const v of enumVals) {
61
+ const n = Number(v);
62
+ if (!Number.isInteger(n))
63
+ continue;
64
+ const label = n >= 0 ? `L${n}` : `Neg${Math.abs(n)}`;
65
+ l.push(`\t${label} = ${n},`);
66
+ }
67
+ l.push(`}`);
68
+ return l.join("\n");
69
+ }
70
+ function hoistEnumName(parentName, fieldName) {
71
+ return `${rustPascal(parentName)}${rustPascal(fieldName)}`;
72
+ }
73
+ function primitiveFor(t) {
74
+ switch (t) {
75
+ case "string":
76
+ return "String";
77
+ case "integer":
78
+ return "i64";
79
+ case "number":
80
+ return "f64";
81
+ case "boolean":
82
+ return "bool";
83
+ default:
84
+ return null;
85
+ }
86
+ }
87
+ function constBaseType(val) {
88
+ if (typeof val === "boolean")
89
+ return "bool";
90
+ if (typeof val === "number")
91
+ return Number.isInteger(val) ? "i64" : "f64";
92
+ return "String";
93
+ }
94
+ function hoist(ctx, render) {
95
+ const names = ctx.names ?? DEFAULT_NAMES;
96
+ const name = names.hoist(`${ctx.parentName}.${ctx.fieldName}`, hoistEnumName(ctx.parentName, ctx.fieldName));
97
+ if (!ctx.decls.has(name)) {
98
+ /* placeholder prevents infinite recursion on self-referential schemas */
99
+ ctx.decls.set(name, "");
100
+ ctx.decls.set(name, render(name));
101
+ }
102
+ return name;
103
+ }
104
+ /**
105
+ * Render an IR schema as a Rust type expression for a struct field position.
106
+ * Mutates `ctx.decls` when hoisting enums or anonymous structs.
107
+ */
108
+ export function irRenderUseRust(ir, ctx, depth = 0) {
109
+ if (depth > 12)
110
+ return "serde_json::Value";
111
+ const names = ctx.names ?? DEFAULT_NAMES;
112
+ switch (ir.kind) {
113
+ case "ref": {
114
+ const rustName = names.ref(ir.name);
115
+ if (ctx.circularRefs?.has(rustName) || names.cyclic.has(ir.name))
116
+ return `Box<${rustName}>`;
117
+ return rustName;
118
+ }
119
+ case "allOf": {
120
+ if (ctx.names && ir.parts.length > 1) {
121
+ return hoist(ctx, (name) => irRenderTopLevelRust(name, ir, ctx.decls, undefined, ctx.names));
122
+ }
123
+ const firstRef = ir.parts.find((p) => p.kind === "ref");
124
+ if (firstRef && firstRef.kind === "ref")
125
+ return names.ref(firstRef.name);
126
+ if (ctx.names && ir.parts.length === 1)
127
+ return irRenderUseRust(ir.parts[0], ctx, depth + 1);
128
+ return "serde_json::Value";
129
+ }
130
+ case "nullable": {
131
+ const innerStr = irRenderUseRust(ir.inner, ctx, depth + 1);
132
+ /* inner is already serde_json::Value — don't wrap in Option */
133
+ if (innerStr === "serde_json::Value")
134
+ return "serde_json::Value";
135
+ /* idempotent: don't double-wrap */
136
+ if (innerStr.startsWith("Option<"))
137
+ return innerStr;
138
+ return `Option<${innerStr}>`;
139
+ }
140
+ case "union": {
141
+ if (ctx.names) {
142
+ return hoist(ctx, (name) => irRenderTopLevelRust(name, ir, ctx.decls, undefined, ctx.names));
143
+ }
144
+ /* union at use-position → always serde_json::Value */
145
+ return "serde_json::Value";
146
+ }
147
+ case "scalar": {
148
+ if (ir.enum) {
149
+ if (ir.type === "string")
150
+ return hoist(ctx, (name) => renderHoistedStringEnum(name, ir.enum));
151
+ if (ir.type === "integer")
152
+ return hoist(ctx, (name) => renderHoistedIntEnum(name, ir.enum));
153
+ }
154
+ const prim = primitiveFor(ir.type);
155
+ if (prim)
156
+ return prim;
157
+ return "serde_json::Value";
158
+ }
159
+ case "const": {
160
+ return constBaseType(ir.value);
161
+ }
162
+ case "array": {
163
+ const itemCtx = ctx.names ? { ...ctx, fieldName: `${ctx.fieldName}Item` } : ctx;
164
+ const el = irRenderUseRust(ir.items, itemCtx, depth + 1);
165
+ /* a Vec already breaks a recursive cycle */
166
+ return `Vec<${el.startsWith("Box<") ? el.slice(4, -1) : el}>`;
167
+ }
168
+ case "tuple": {
169
+ /* Rust emitter ignores tuple item types — always Vec<serde_json::Value> */
170
+ return "Vec<serde_json::Value>";
171
+ }
172
+ case "object": {
173
+ const { fields, additional } = ir;
174
+ if (fields.length === 0) {
175
+ if (additional !== undefined && additional !== false) {
176
+ const valType = irRenderUseRust(additional, { ...ctx, fieldName: `${ctx.fieldName}Value` }, depth + 1);
177
+ return `std::collections::HashMap<String, ${valType.startsWith("Box<") ? valType.slice(4, -1) : valType}>`;
178
+ }
179
+ if (additional === false)
180
+ return "serde_json::Value";
181
+ return "std::collections::HashMap<String, serde_json::Value>";
182
+ }
183
+ return hoist(ctx, (name) => irRenderTopLevelRust(name, ir, ctx.decls, undefined, ctx.names));
184
+ }
185
+ case "binary": {
186
+ return "String";
187
+ }
188
+ case "unknown": {
189
+ return "serde_json::Value";
190
+ }
191
+ }
192
+ }
193
+ function structFields(typeName, fields, scope, decls, circularRefs, names) {
194
+ return fields
195
+ .slice()
196
+ .sort((a, b) => cmpCodeUnit(a.name, b.name))
197
+ .map((field) => {
198
+ const ft = irRenderUseRust(field.schema, {
199
+ circularRefs,
200
+ decls,
201
+ depth: 1,
202
+ fieldName: field.name,
203
+ names,
204
+ parentName: typeName,
205
+ });
206
+ const triState = !field.required && field.schema.kind === "nullable";
207
+ let type;
208
+ if (field.required)
209
+ type = circularRefs.has(ft) && !ft.startsWith("Box<") ? `Box<${ft}>` : ft;
210
+ else if (triState)
211
+ type = `Option<${ft.startsWith("Option<") ? ft : `Option<${ft}>`}>`;
212
+ else
213
+ type = ft.startsWith("Option<") ? ft : `Option<${ft}>`;
214
+ return { ident: claimField(field.name, scope), key: field.name, required: field.required, triState, type };
215
+ });
216
+ }
217
+ /** Field identifier unique in `scope`; a keyword gets a `_` suffix (`type` → `type_`). */
218
+ function claimField(key, scope) {
219
+ return scope.claim(rustPlainSnake(key));
220
+ }
221
+ function pushField(l, f) {
222
+ const bare = f.ident.startsWith("r#") ? f.ident.slice(2) : f.ident;
223
+ if (bare !== f.key)
224
+ l.push(`\t#[serde(rename = ${rustString(f.key)})]`);
225
+ if (f.triState) {
226
+ l.push(`\t#[serde(default, skip_serializing_if = "Option::is_none", deserialize_with = "crate::nullable::deserialize")]`);
227
+ }
228
+ else if (!f.required)
229
+ l.push(`\t#[serde(skip_serializing_if = "Option::is_none")]`);
230
+ l.push(`\tpub ${f.ident}: ${f.type},`);
231
+ }
232
+ function discriminatorValues(variant, propertyName, mapping, names) {
233
+ if (variant.kind === "ref") {
234
+ const mapped = mapping
235
+ ? Object.entries(mapping)
236
+ .filter(([, t]) => t === variant.name)
237
+ .map(([k]) => k)
238
+ : [];
239
+ if (mapped.length > 0)
240
+ return mapped;
241
+ }
242
+ const resolved = names.resolve(variant);
243
+ if (resolved.kind === "object") {
244
+ const f = resolved.fields.find((x) => x.name === propertyName);
245
+ if (f?.schema.kind === "const" && typeof f.schema.value === "string")
246
+ return [f.schema.value];
247
+ if (f?.schema.kind === "scalar" && f.schema.enum)
248
+ return f.schema.enum.map(String);
249
+ }
250
+ return variant.kind === "ref" ? [variant.name] : [];
251
+ }
252
+ /**
253
+ * `raw` 4th arg is for the const-with-declared-type branch only: IR `const` kind
254
+ * strips the type field; `raw.type` provides the override.
255
+ */
256
+ export function irRenderTopLevelRust(name, ir, decls, raw, names) {
257
+ const n = names ?? DEFAULT_NAMES;
258
+ const typeName = names ? name : rustPascal(name);
259
+ const circularRefs = new Set([typeName]);
260
+ if (ir.kind === "scalar" && ir.enum) {
261
+ if (ir.type === "string")
262
+ return renderHoistedStringEnum(typeName, ir.enum);
263
+ if (ir.type === "integer")
264
+ return renderHoistedIntEnum(typeName, ir.enum);
265
+ }
266
+ if (ir.kind === "const") {
267
+ const rawType = ir.type ?? raw?.type;
268
+ const base = rawType ? (primitiveFor(rawType) ?? "String") : constBaseType(ir.value);
269
+ return [`#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]`, `pub struct ${typeName}(pub ${base});`].join("\n");
270
+ }
271
+ if (ir.kind === "allOf") {
272
+ const l = [];
273
+ l.push(`#[derive(Debug, Clone, Serialize, Deserialize)]`);
274
+ l.push(`pub struct ${typeName} {`);
275
+ const scope = new NameScope();
276
+ for (const part of ir.parts) {
277
+ if (part.kind === "ref") {
278
+ const refName = n.ref(part.name);
279
+ l.push(`\t#[serde(flatten)]`);
280
+ l.push(`\tpub ${claimField(refName, scope)}: ${refName},`);
281
+ continue;
282
+ }
283
+ if (part.kind !== "object")
284
+ continue;
285
+ for (const f of structFields(typeName, part.fields, scope, decls, circularRefs, names))
286
+ pushField(l, f);
287
+ }
288
+ l.push(`}`);
289
+ return l.join("\n");
290
+ }
291
+ if (ir.kind === "union" && ir.discriminator && names) {
292
+ const prop = ir.discriminator.propertyName;
293
+ const scope = new NameScope(["Unknown"]);
294
+ const variants = [];
295
+ ir.variants.forEach((v, i) => {
296
+ const values = discriminatorValues(v, prop, ir.discriminator?.mapping, n);
297
+ let type;
298
+ if (v.kind === "ref")
299
+ type = n.ref(v.name);
300
+ else if (v.kind === "object") {
301
+ type = n.hoist(`${typeName}.variant${i}`, `${typeName}${rustPascal(values[0] ?? `Variant${i}`)}`);
302
+ if (!decls.has(type)) {
303
+ decls.set(type, "");
304
+ decls.set(type, irRenderTopLevelRust(type, v, decls, undefined, names));
305
+ }
306
+ }
307
+ else
308
+ return;
309
+ variants.push({ type, values, variant: variantName(values[0] ?? type, scope) });
310
+ });
311
+ const l = [];
312
+ l.push(`/// ${typeName} holds exactly one variant, selected by the ${rustString(prop)} property.`);
313
+ l.push(`/// A tag no variant declares deserializes to \`Unknown\` with the raw payload.`);
314
+ l.push(`#[derive(Debug, Clone)]`);
315
+ l.push(`pub enum ${typeName} {`);
316
+ for (const v of variants)
317
+ l.push(`\t${v.variant}(${v.type}),`);
318
+ l.push(`\tUnknown(serde_json::Value),`);
319
+ l.push(`}`);
320
+ l.push(``);
321
+ l.push(`impl Serialize for ${typeName} {`);
322
+ l.push(`\tfn serialize<S: serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {`);
323
+ l.push(`\t\tmatch self {`);
324
+ for (const v of variants)
325
+ l.push(`\t\t\t${typeName}::${v.variant}(v) => v.serialize(s),`);
326
+ l.push(`\t\t\t${typeName}::Unknown(v) => v.serialize(s),`);
327
+ l.push(`\t\t}`);
328
+ l.push(`\t}`);
329
+ l.push(`}`);
330
+ l.push(``);
331
+ l.push(`impl<'de> Deserialize<'de> for ${typeName} {`);
332
+ l.push(`\tfn deserialize<D: serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {`);
333
+ l.push(`\t\tlet v = serde_json::Value::deserialize(d)?;`);
334
+ l.push(`\t\tlet tag = v.get(${rustString(prop)}).and_then(|t| t.as_str()).unwrap_or_default().to_string();`);
335
+ l.push(`\t\tmatch tag.as_str() {`);
336
+ for (const v of variants) {
337
+ if (v.values.length === 0)
338
+ continue;
339
+ l.push(`\t\t\t${v.values.map(rustString).join(" | ")} => serde_json::from_value(v).map(${typeName}::${v.variant}).map_err(serde::de::Error::custom),`);
340
+ }
341
+ l.push(`\t\t\t_ => Ok(${typeName}::Unknown(v)),`);
342
+ l.push(`\t\t}`);
343
+ l.push(`\t}`);
344
+ l.push(`}`);
345
+ return l.join("\n");
346
+ }
347
+ if (ir.kind === "union" && ir.discriminator) {
348
+ /* legacy shim path (no naming context): serde's internal tagging */
349
+ const l = [];
350
+ l.push(`#[derive(Debug, Clone, Serialize, Deserialize)]`);
351
+ l.push(`#[serde(tag = ${rustString(ir.discriminator.propertyName)})]`);
352
+ l.push(`pub enum ${typeName} {`);
353
+ for (const v of ir.variants) {
354
+ if (v.kind === "ref") {
355
+ const refName = rustPascal(v.name);
356
+ l.push(`\t${refName}(${refName}),`);
357
+ }
358
+ else {
359
+ l.push(`\tVariant(serde_json::Value),`);
360
+ }
361
+ }
362
+ l.push(`}`);
363
+ return l.join("\n");
364
+ }
365
+ if (ir.kind === "union") {
366
+ const consts = ir.variants.filter((v) => v.kind === "const" && typeof v.value === "string");
367
+ if (names && consts.length > 0 && consts.length === ir.variants.length) {
368
+ return renderHoistedStringEnum(typeName, consts.map((c) => c.value));
369
+ }
370
+ const l = [];
371
+ l.push(`#[derive(Debug, Clone, Serialize, Deserialize)]`);
372
+ l.push(`#[serde(untagged)]`);
373
+ l.push(`pub enum ${typeName} {`);
374
+ const others = names ? ir.variants.filter((v) => !consts.includes(v)) : ir.variants;
375
+ if (names && consts.length > 0) {
376
+ /* const strings as one string enum, tried first: a unit variant cannot match a string */
377
+ const literal = n.hoist(`${typeName}.literal`, `${typeName}Literal`);
378
+ if (!decls.has(literal))
379
+ decls.set(literal, renderHoistedStringEnum(literal, consts.map((c) => c.value)));
380
+ l.push(`\tLiteral(${literal}),`);
381
+ }
382
+ for (let i = 0; i < others.length; i++) {
383
+ const v = others[i];
384
+ const index = ir.variants.indexOf(v);
385
+ if (v.kind === "ref") {
386
+ const refName = n.ref(v.name);
387
+ l.push(`\tVariant${index}(${n.cyclic.has(v.name) ? `Box<${refName}>` : refName}),`);
388
+ }
389
+ else {
390
+ const inner = irRenderUseRust(v, {
391
+ circularRefs,
392
+ decls,
393
+ depth: 1,
394
+ fieldName: `variant${index}`,
395
+ names,
396
+ parentName: typeName,
397
+ });
398
+ l.push(`\tVariant${index}(${inner}),`);
399
+ }
400
+ }
401
+ l.push(`}`);
402
+ return l.join("\n");
403
+ }
404
+ if (ir.kind === "object") {
405
+ const { fields, additional } = ir;
406
+ if (fields.length === 0 && additional !== undefined && additional !== false) {
407
+ const valType = irRenderUseRust(additional, {
408
+ circularRefs,
409
+ decls,
410
+ fieldName: "Value",
411
+ names,
412
+ parentName: typeName,
413
+ });
414
+ return `pub type ${typeName} = std::collections::HashMap<String, ${valType}>;`;
415
+ }
416
+ if (fields.length === 0) {
417
+ if (additional === false)
418
+ return `#[derive(Debug, Clone, Serialize, Deserialize)]\npub struct ${typeName};`;
419
+ return `pub type ${typeName} = std::collections::HashMap<String, serde_json::Value>;`;
420
+ }
421
+ const scope = new NameScope();
422
+ const extraIdent = additional ? scope.claim("extra") : "";
423
+ const l = [];
424
+ l.push(`#[derive(Debug, Clone, Serialize, Deserialize)]`);
425
+ l.push(`pub struct ${typeName} {`);
426
+ for (const f of structFields(typeName, fields, scope, decls, circularRefs, names))
427
+ pushField(l, f);
428
+ if (additional) {
429
+ const valType = irRenderUseRust(additional, {
430
+ circularRefs,
431
+ decls,
432
+ depth: 1,
433
+ fieldName: "Extra",
434
+ names,
435
+ parentName: typeName,
436
+ });
437
+ l.push(`\t#[serde(flatten)]`);
438
+ l.push(`\tpub ${extraIdent}: std::collections::HashMap<String, ${valType}>,`);
439
+ }
440
+ l.push(`}`);
441
+ return l.join("\n");
442
+ }
443
+ const aliased = irRenderUseRust(ir, {
444
+ circularRefs,
445
+ decls,
446
+ fieldName: "Value",
447
+ names,
448
+ parentName: typeName,
449
+ });
450
+ return `pub type ${typeName} = ${aliased};`;
451
+ }
452
+ /**
453
+ * Render a schema as a Rust type expression for a struct field position.
454
+ * Mutates `ctx.decls` when hoisting enums or anonymous structs.
455
+ */
456
+ export function renderUseRust(schema, ctx) {
457
+ return irRenderUseRust(schemaToIR(schema), ctx, ctx.depth ?? 0);
458
+ }
459
+ export function renderTopLevelRust(name, schema, decls) {
460
+ return irRenderTopLevelRust(name, schemaToIR(schema), decls, schema);
461
+ }
462
+ export { pascalWords };
463
+ //# sourceMappingURL=rust-type-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-type-emitter.js","sourceRoot":"","sources":["../src/rust-type-emitter.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EACN,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,GACV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAA;AACnC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAYD,MAAM,aAAa,GAAkB;IACpC,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI;IAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACjB,CAAA;AAWD,SAAS,WAAW,CAAC,GAAW,EAAE,KAAgB;IACjD,MAAM,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACtD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,QAAmB;IACrE,MAAM,CAAC,GAAa,EAAE,CAAA;IACtB,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IACxE,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACvC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtB,IAAI,GAAG,KAAK,OAAO;YAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtE,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX;+FAC2F;IAC3F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACV,CAAC,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAA;QACxC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAClC,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,QAAmB;IAClE,MAAM,CAAC,GAAa,EAAE,CAAA;IACtB,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;IACxF,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACtB,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAA;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAAE,SAAQ;QAClC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACpD,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,SAAiB;IAC3D,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,CAAqB;IAC1C,QAAQ,CAAC,EAAE,CAAC;QACX,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAA;QAChB,KAAK,SAAS;YACb,OAAO,KAAK,CAAA;QACb,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAA;QACb,KAAK,SAAS;YACb,OAAO,MAAM,CAAA;QACd;YACC,OAAO,IAAI,CAAA;IACb,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IAClC,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACzE,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,GAAqB,EAAE,MAAgC;IACrE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,aAAa,CAAA;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5G,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,yEAAyE;QACzE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAY,EAAE,GAAqB,EAAE,KAAK,GAAG,CAAC;IAC7E,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,mBAAmB,CAAA;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,aAAa,CAAA;IAExC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,KAAK,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,QAAQ,GAAG,CAAA;YAC3F,OAAO,QAAQ,CAAA;QAChB,CAAC;QAED,KAAK,OAAO,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7F,CAAC;YACD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;YACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACxE,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC3F,OAAO,mBAAmB,CAAA;QAC3B,CAAC;QAED,KAAK,UAAU,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC1D,+DAA+D;YAC/D,IAAI,QAAQ,KAAK,mBAAmB;gBAAE,OAAO,mBAAmB,CAAA;YAChE,mCAAmC;YACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,CAAA;YACnD,OAAO,UAAU,QAAQ,GAAG,CAAA;QAC7B,CAAC;QAED,KAAK,OAAO,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7F,CAAC;YACD,sDAAsD;YACtD,OAAO,mBAAmB,CAAA;QAC3B,CAAC;QAED,KAAK,QAAQ,EAAE,CAAC;YACf,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAC,CAAA;gBAC1G,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAC,CAAA;YACzG,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;YACrB,OAAO,mBAAmB,CAAA;QAC3B,CAAC;QAED,KAAK,OAAO,EAAE,CAAC;YACd,OAAO,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QAED,KAAK,OAAO,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YAC/E,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACxD,4CAA4C;YAC5C,OAAO,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QAC9D,CAAC;QAED,KAAK,OAAO,EAAE,CAAC;YACd,2EAA2E;YAC3E,OAAO,wBAAwB,CAAA;QAChC,CAAC;QAED,KAAK,QAAQ,EAAE,CAAC;YACf,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;YAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;oBACtD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,OAAO,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;oBACtG,OAAO,qCAAqC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAA;gBAC3G,CAAC;gBACD,IAAI,UAAU,KAAK,KAAK;oBAAE,OAAO,mBAAmB,CAAA;gBACpD,OAAO,sDAAsD,CAAA;YAC9D,CAAC;YAED,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7F,CAAC;QAED,KAAK,QAAQ,EAAE,CAAC;YACf,OAAO,QAAQ,CAAA;QAChB,CAAC;QAED,KAAK,SAAS,EAAE,CAAC;YAChB,OAAO,mBAAmB,CAAA;QAC3B,CAAC;IACF,CAAC;AACF,CAAC;AAWD,SAAS,YAAY,CACpB,QAAgB,EAChB,MAAiB,EACjB,KAAgB,EAChB,KAA0B,EAC1B,YAAyB,EACzB,KAAgC;IAEhC,OAAO,MAAM;SACX,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE;YACxC,YAAY;YACZ,KAAK;YACL,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,KAAK;YACL,UAAU,EAAE,QAAQ;SACpB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAA;QACpE,IAAI,IAAY,CAAA;QAChB,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;aACxF,IAAI,QAAQ;YAAE,IAAI,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,GAAG,CAAA;;YACjF,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAA;QAC3D,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC3G,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CAAC,GAAW,EAAE,KAAgB;IAChD,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,CAAW,EAAE,CAAY;IAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAClE,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG;QAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CACL,iHAAiH,CACjH,CAAA;IACF,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;IACrF,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,mBAAmB,CAC3B,OAAiB,EACjB,YAAoB,EACpB,OAA2C,EAC3C,KAAoB;IAEpB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO;YACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,EAAE,CAAA;QACL,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAA;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;QAC9D,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7F,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CACnC,IAAY,EACZ,EAAY,EACZ,KAA0B,EAC1B,GAA6B,EAC7B,KAAqB;IAErB,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAA;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAExC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,uBAAuB,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAA;QACxF,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,IAAK,GAAG,EAAE,IAA2B,CAAA;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACpF,OAAO,CAAC,4DAA4D,EAAE,cAAc,QAAQ,QAAQ,IAAI,IAAI,CAAC,CAAC,IAAI,CACjH,IAAI,CACJ,CAAA;IACF,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACzD,CAAC,CAAC,IAAI,CAAC,cAAc,QAAQ,IAAI,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAChC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;gBAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,OAAO,GAAG,CAAC,CAAA;gBAC1D,SAAQ;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YACpC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC;gBAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxG,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACxC,MAAM,QAAQ,GAA+D,EAAE,CAAA;QAC/E,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACzE,IAAI,IAAY,CAAA;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;gBAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;iBACrC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,WAAW,CAAC,EAAE,EAAE,GAAG,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBACjG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;oBACnB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;gBACxE,CAAC;YACF,CAAC;;gBAAM,OAAM;YACb,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,CAAC,CAAC,IAAI,CAAC,OAAO,QAAQ,+CAA+C,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAClG,CAAC,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;QACzF,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACjC,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAA;QAChC,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;QAC9D,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QACvC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACV,CAAC,CAAC,IAAI,CAAC,sBAAsB,QAAQ,IAAI,CAAC,CAAA;QAC1C,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;QACxF,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,KAAK,CAAC,CAAC,OAAO,wBAAwB,CAAC,CAAA;QACzF,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,iCAAiC,CAAC,CAAA;QAC1D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACV,CAAC,CAAC,IAAI,CAAC,kCAAkC,QAAQ,IAAI,CAAC,CAAA;QACtD,CAAC,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;QACzF,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACzD,CAAC,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QAC5G,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACnC,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,QAAQ,KAAK,CAAC,CAAC,OAAO,sCAAsC,CAC9I,CAAA;QACF,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,iBAAiB,QAAQ,gBAAgB,CAAC,CAAA;QACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;QAC7C,oEAAoE;QACpE,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACzD,CAAC,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACtE,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAA;QAChC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAClC,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACP,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YACxC,CAAC;QACF,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAChC,CAAC,CAAC,EAA6C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CACnG,CAAA;QACD,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxE,OAAO,uBAAuB,CAC7B,QAAQ,EACR,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1B,CAAA;QACF,CAAC;QACD,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACzD,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC5B,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAA;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAA;QAC5F,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,yFAAyF;YACzF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,UAAU,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAA;YACpE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtB,KAAK,CAAC,GAAG,CACR,OAAO,EACP,uBAAuB,CACtB,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1B,CACD,CAAA;YACF,CAAC,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACP,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,EAAE;oBAChC,YAAY;oBACZ,KAAK;oBACL,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,UAAU,KAAK,EAAE;oBAC5B,KAAK;oBACL,UAAU,EAAE,QAAQ;iBACpB,CAAC,CAAA;gBACF,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,KAAK,IAAI,CAAC,CAAA;YACvC,CAAC;QACF,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;QAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YAC7E,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE;gBAC3C,YAAY;gBACZ,KAAK;gBACL,SAAS,EAAE,OAAO;gBAClB,KAAK;gBACL,UAAU,EAAE,QAAQ;aACpB,CAAC,CAAA;YACF,OAAO,YAAY,QAAQ,wCAAwC,OAAO,IAAI,CAAA;QAC/E,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,UAAU,KAAK,KAAK;gBAAE,OAAO,+DAA+D,QAAQ,GAAG,CAAA;YAC3G,OAAO,YAAY,QAAQ,0DAA0D,CAAA;QACtF,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;QAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzD,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACzD,CAAC,CAAC,IAAI,CAAC,cAAc,QAAQ,IAAI,CAAC,CAAA;QAClC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC;YAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAElG,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE;gBAC3C,YAAY;gBACZ,KAAK;gBACL,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,OAAO;gBAClB,KAAK;gBACL,UAAU,EAAE,QAAQ;aACpB,CAAC,CAAA;YACF,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,uCAAuC,OAAO,IAAI,CAAC,CAAA;QAC9E,CAAC;QAED,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,EAAE;QACnC,YAAY;QACZ,KAAK;QACL,SAAS,EAAE,OAAO;QAClB,KAAK;QACL,UAAU,EAAE,QAAQ;KACpB,CAAC,CAAA;IACF,OAAO,YAAY,QAAQ,MAAM,OAAO,GAAG,CAAA;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2C,EAAE,GAAqB;IAC/F,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAA+B,EAAE,KAA0B;IAC3G,OAAO,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"secure-headers.d.ts","sourceRoot":"","sources":["../src/secure-headers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,KAAK,oBAAoB,GAAG;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,mBAAmB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACpC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC/B,CAAA;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAqDlF"}
1
+ {"version":3,"file":"secure-headers.d.ts","sourceRoot":"","sources":["../src/secure-headers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGnD,KAAK,oBAAoB,GAAG;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,mBAAmB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACpC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC/B,CAAA;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAwDlF"}
@@ -0,0 +1,53 @@
1
+ import { namedMiddleware } from "./middleware.js";
2
+ import { withHeaders } from "./with-headers.js";
3
+ export function secureHeaders(options) {
4
+ const opts = options ?? {};
5
+ const headers = [];
6
+ const xContentType = opts.xContentTypeOptions;
7
+ if (xContentType !== false) {
8
+ headers.push(["x-content-type-options", xContentType ?? "nosniff"]);
9
+ }
10
+ const xFrame = opts.xFrameOptions;
11
+ if (xFrame !== false) {
12
+ headers.push(["x-frame-options", xFrame ?? "SAMEORIGIN"]);
13
+ }
14
+ const referrer = opts.referrerPolicy;
15
+ if (referrer !== false) {
16
+ headers.push(["referrer-policy", referrer ?? "strict-origin-when-cross-origin"]);
17
+ }
18
+ const xss = opts.xXssProtection;
19
+ if (xss !== false) {
20
+ headers.push(["x-xss-protection", xss ?? "0"]);
21
+ }
22
+ if (opts.contentSecurityPolicy) {
23
+ headers.push(["content-security-policy", opts.contentSecurityPolicy]);
24
+ }
25
+ if (opts.strictTransportSecurity) {
26
+ headers.push(["strict-transport-security", opts.strictTransportSecurity]);
27
+ }
28
+ if (opts.permissionsPolicy) {
29
+ headers.push(["permissions-policy", opts.permissionsPolicy]);
30
+ }
31
+ if (opts.crossOriginOpenerPolicy) {
32
+ headers.push(["cross-origin-opener-policy", opts.crossOriginOpenerPolicy]);
33
+ }
34
+ if (opts.crossOriginResourcePolicy) {
35
+ headers.push(["cross-origin-resource-policy", opts.crossOriginResourcePolicy]);
36
+ }
37
+ if (opts.crossOriginEmbedderPolicy) {
38
+ headers.push(["cross-origin-embedder-policy", opts.crossOriginEmbedderPolicy]);
39
+ }
40
+ /* A header the handler already set wins: a route with a stricter CSP or
41
+ * `X-Frame-Options: DENY` must not be loosened by the app-wide default. */
42
+ const mw = async (_ctx, next) => {
43
+ const response = await next();
44
+ return withHeaders(response, (out) => {
45
+ for (const [name, value] of headers) {
46
+ if (!out.has(name))
47
+ out.set(name, value);
48
+ }
49
+ });
50
+ };
51
+ return namedMiddleware("secureHeaders", mw);
52
+ }
53
+ //# sourceMappingURL=secure-headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-headers.js","sourceRoot":"","sources":["../src/secure-headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAe/C,MAAM,UAAU,aAAa,CAAC,OAA8B;IAC3D,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAA;IAE1B,MAAM,OAAO,GAA4B,EAAE,CAAA;IAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAA;IAC7C,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAA;IACjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAA;IACpC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,IAAI,iCAAiC,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAA;IAC/B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,2BAA2B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAC/E,CAAC;IAED;+EAC2E;IAC3E,MAAM,EAAE,GAAyB,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAA;QAC7B,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YACpC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACzC,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;AAC5C,CAAC"}
@@ -1,2 +1,6 @@
1
+ import { startHoneyServer } from "./serve.ts";
2
+ export type { HoneyServeOptions, ServeHandle } from "./serve.ts";
3
+ /** Starts a server for `app` on the given runtime. Production build entries call this directly. */
4
+ export { startHoneyServer };
1
5
  export declare function enableServe(): void;
2
6
  //# sourceMappingURL=serve-register.d.ts.map