raffel 0.1.2

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 (1180) hide show
  1. package/README.md +485 -0
  2. package/dist/adapters/grpc.d.ts +56 -0
  3. package/dist/adapters/grpc.d.ts.map +1 -0
  4. package/dist/adapters/grpc.int.test.d.ts +5 -0
  5. package/dist/adapters/grpc.int.test.d.ts.map +1 -0
  6. package/dist/adapters/grpc.int.test.js +168 -0
  7. package/dist/adapters/grpc.int.test.js.map +1 -0
  8. package/dist/adapters/grpc.js +434 -0
  9. package/dist/adapters/grpc.js.map +1 -0
  10. package/dist/adapters/http.d.ts +62 -0
  11. package/dist/adapters/http.d.ts.map +1 -0
  12. package/dist/adapters/http.int.test.d.ts +5 -0
  13. package/dist/adapters/http.int.test.d.ts.map +1 -0
  14. package/dist/adapters/http.int.test.js +396 -0
  15. package/dist/adapters/http.int.test.js.map +1 -0
  16. package/dist/adapters/http.js +606 -0
  17. package/dist/adapters/http.js.map +1 -0
  18. package/dist/adapters/index.d.ts +13 -0
  19. package/dist/adapters/index.d.ts.map +1 -0
  20. package/dist/adapters/index.js +13 -0
  21. package/dist/adapters/index.js.map +1 -0
  22. package/dist/adapters/jsonrpc.d.ts +86 -0
  23. package/dist/adapters/jsonrpc.d.ts.map +1 -0
  24. package/dist/adapters/jsonrpc.int.test.d.ts +5 -0
  25. package/dist/adapters/jsonrpc.int.test.d.ts.map +1 -0
  26. package/dist/adapters/jsonrpc.int.test.js +640 -0
  27. package/dist/adapters/jsonrpc.int.test.js.map +1 -0
  28. package/dist/adapters/jsonrpc.js +338 -0
  29. package/dist/adapters/jsonrpc.js.map +1 -0
  30. package/dist/adapters/s3db/adapter.d.ts +105 -0
  31. package/dist/adapters/s3db/adapter.d.ts.map +1 -0
  32. package/dist/adapters/s3db/adapter.js +539 -0
  33. package/dist/adapters/s3db/adapter.js.map +1 -0
  34. package/dist/adapters/s3db/index.d.ts +20 -0
  35. package/dist/adapters/s3db/index.d.ts.map +1 -0
  36. package/dist/adapters/s3db/index.js +25 -0
  37. package/dist/adapters/s3db/index.js.map +1 -0
  38. package/dist/adapters/s3db/s3db.int.test.d.ts +5 -0
  39. package/dist/adapters/s3db/s3db.int.test.d.ts.map +1 -0
  40. package/dist/adapters/s3db/s3db.int.test.js +472 -0
  41. package/dist/adapters/s3db/s3db.int.test.js.map +1 -0
  42. package/dist/adapters/s3db/types.d.ts +277 -0
  43. package/dist/adapters/s3db/types.d.ts.map +1 -0
  44. package/dist/adapters/s3db/types.js +7 -0
  45. package/dist/adapters/s3db/types.js.map +1 -0
  46. package/dist/adapters/s3db/utils/etag.d.ts +65 -0
  47. package/dist/adapters/s3db/utils/etag.d.ts.map +1 -0
  48. package/dist/adapters/s3db/utils/etag.js +99 -0
  49. package/dist/adapters/s3db/utils/etag.js.map +1 -0
  50. package/dist/adapters/s3db/utils/guards.d.ts +121 -0
  51. package/dist/adapters/s3db/utils/guards.d.ts.map +1 -0
  52. package/dist/adapters/s3db/utils/guards.js +169 -0
  53. package/dist/adapters/s3db/utils/guards.js.map +1 -0
  54. package/dist/adapters/s3db/utils/index.d.ts +9 -0
  55. package/dist/adapters/s3db/utils/index.d.ts.map +1 -0
  56. package/dist/adapters/s3db/utils/index.js +10 -0
  57. package/dist/adapters/s3db/utils/index.js.map +1 -0
  58. package/dist/adapters/s3db/utils/populate.d.ts +89 -0
  59. package/dist/adapters/s3db/utils/populate.d.ts.map +1 -0
  60. package/dist/adapters/s3db/utils/populate.js +165 -0
  61. package/dist/adapters/s3db/utils/populate.js.map +1 -0
  62. package/dist/adapters/tcp.d.ts +59 -0
  63. package/dist/adapters/tcp.d.ts.map +1 -0
  64. package/dist/adapters/tcp.int.test.d.ts +5 -0
  65. package/dist/adapters/tcp.int.test.d.ts.map +1 -0
  66. package/dist/adapters/tcp.int.test.js +379 -0
  67. package/dist/adapters/tcp.int.test.js.map +1 -0
  68. package/dist/adapters/tcp.js +400 -0
  69. package/dist/adapters/tcp.js.map +1 -0
  70. package/dist/adapters/websocket.d.ts +75 -0
  71. package/dist/adapters/websocket.d.ts.map +1 -0
  72. package/dist/adapters/websocket.int.test.d.ts +5 -0
  73. package/dist/adapters/websocket.int.test.d.ts.map +1 -0
  74. package/dist/adapters/websocket.int.test.js +383 -0
  75. package/dist/adapters/websocket.int.test.js.map +1 -0
  76. package/dist/adapters/websocket.js +393 -0
  77. package/dist/adapters/websocket.js.map +1 -0
  78. package/dist/cache/drivers/file.d.ts +77 -0
  79. package/dist/cache/drivers/file.d.ts.map +1 -0
  80. package/dist/cache/drivers/file.js +329 -0
  81. package/dist/cache/drivers/file.js.map +1 -0
  82. package/dist/cache/drivers/index.d.ts +10 -0
  83. package/dist/cache/drivers/index.d.ts.map +1 -0
  84. package/dist/cache/drivers/index.js +10 -0
  85. package/dist/cache/drivers/index.js.map +1 -0
  86. package/dist/cache/drivers/memory.d.ts +138 -0
  87. package/dist/cache/drivers/memory.d.ts.map +1 -0
  88. package/dist/cache/drivers/memory.int.test.d.ts +5 -0
  89. package/dist/cache/drivers/memory.int.test.d.ts.map +1 -0
  90. package/dist/cache/drivers/memory.int.test.js +241 -0
  91. package/dist/cache/drivers/memory.int.test.js.map +1 -0
  92. package/dist/cache/drivers/memory.js +659 -0
  93. package/dist/cache/drivers/memory.js.map +1 -0
  94. package/dist/cache/drivers/redis.d.ts +84 -0
  95. package/dist/cache/drivers/redis.d.ts.map +1 -0
  96. package/dist/cache/drivers/redis.js +243 -0
  97. package/dist/cache/drivers/redis.js.map +1 -0
  98. package/dist/cache/drivers/s3db.d.ts +78 -0
  99. package/dist/cache/drivers/s3db.d.ts.map +1 -0
  100. package/dist/cache/drivers/s3db.js +216 -0
  101. package/dist/cache/drivers/s3db.js.map +1 -0
  102. package/dist/cache/factory.d.ts +77 -0
  103. package/dist/cache/factory.d.ts.map +1 -0
  104. package/dist/cache/factory.js +130 -0
  105. package/dist/cache/factory.js.map +1 -0
  106. package/dist/cache/index.d.ts +62 -0
  107. package/dist/cache/index.d.ts.map +1 -0
  108. package/dist/cache/index.js +63 -0
  109. package/dist/cache/index.js.map +1 -0
  110. package/dist/cache/types.d.ts +328 -0
  111. package/dist/cache/types.d.ts.map +1 -0
  112. package/dist/cache/types.js +8 -0
  113. package/dist/cache/types.js.map +1 -0
  114. package/dist/channels/channel-manager.d.ts +39 -0
  115. package/dist/channels/channel-manager.d.ts.map +1 -0
  116. package/dist/channels/channel-manager.int.test.d.ts +5 -0
  117. package/dist/channels/channel-manager.int.test.d.ts.map +1 -0
  118. package/dist/channels/channel-manager.int.test.js +378 -0
  119. package/dist/channels/channel-manager.int.test.js.map +1 -0
  120. package/dist/channels/channel-manager.js +274 -0
  121. package/dist/channels/channel-manager.js.map +1 -0
  122. package/dist/channels/index.d.ts +47 -0
  123. package/dist/channels/index.d.ts.map +1 -0
  124. package/dist/channels/index.js +48 -0
  125. package/dist/channels/index.js.map +1 -0
  126. package/dist/channels/types.d.ts +265 -0
  127. package/dist/channels/types.d.ts.map +1 -0
  128. package/dist/channels/types.js +39 -0
  129. package/dist/channels/types.js.map +1 -0
  130. package/dist/core/ctx-call.int.test.d.ts +7 -0
  131. package/dist/core/ctx-call.int.test.d.ts.map +1 -0
  132. package/dist/core/ctx-call.int.test.js +263 -0
  133. package/dist/core/ctx-call.int.test.js.map +1 -0
  134. package/dist/core/event-delivery.d.ts +38 -0
  135. package/dist/core/event-delivery.d.ts.map +1 -0
  136. package/dist/core/event-delivery.js +131 -0
  137. package/dist/core/event-delivery.js.map +1 -0
  138. package/dist/core/index.d.ts +7 -0
  139. package/dist/core/index.d.ts.map +1 -0
  140. package/dist/core/index.js +7 -0
  141. package/dist/core/index.js.map +1 -0
  142. package/dist/core/registry.d.ts +93 -0
  143. package/dist/core/registry.d.ts.map +1 -0
  144. package/dist/core/registry.js +107 -0
  145. package/dist/core/registry.js.map +1 -0
  146. package/dist/core/registry.unit.test.d.ts +2 -0
  147. package/dist/core/registry.unit.test.d.ts.map +1 -0
  148. package/dist/core/registry.unit.test.js +133 -0
  149. package/dist/core/registry.unit.test.js.map +1 -0
  150. package/dist/core/router.d.ts +70 -0
  151. package/dist/core/router.d.ts.map +1 -0
  152. package/dist/core/router.int.test.d.ts +2 -0
  153. package/dist/core/router.int.test.d.ts.map +1 -0
  154. package/dist/core/router.int.test.js +368 -0
  155. package/dist/core/router.int.test.js.map +1 -0
  156. package/dist/core/router.js +308 -0
  157. package/dist/core/router.js.map +1 -0
  158. package/dist/docs/generators/content-types.d.ts +10 -0
  159. package/dist/docs/generators/content-types.d.ts.map +1 -0
  160. package/dist/docs/generators/content-types.js +18 -0
  161. package/dist/docs/generators/content-types.js.map +1 -0
  162. package/dist/docs/generators/errors-types.d.ts +409 -0
  163. package/dist/docs/generators/errors-types.d.ts.map +1 -0
  164. package/dist/docs/generators/errors-types.js +224 -0
  165. package/dist/docs/generators/errors-types.js.map +1 -0
  166. package/dist/docs/generators/errors.d.ts +88 -0
  167. package/dist/docs/generators/errors.d.ts.map +1 -0
  168. package/dist/docs/generators/errors.js +224 -0
  169. package/dist/docs/generators/errors.js.map +1 -0
  170. package/dist/docs/generators/generators.int.test.d.ts +2 -0
  171. package/dist/docs/generators/generators.int.test.d.ts.map +1 -0
  172. package/dist/docs/generators/generators.int.test.js +105 -0
  173. package/dist/docs/generators/generators.int.test.js.map +1 -0
  174. package/dist/docs/generators/grpc-generator.d.ts +53 -0
  175. package/dist/docs/generators/grpc-generator.d.ts.map +1 -0
  176. package/dist/docs/generators/grpc-generator.js +109 -0
  177. package/dist/docs/generators/grpc-generator.js.map +1 -0
  178. package/dist/docs/generators/http-generator.d.ts +49 -0
  179. package/dist/docs/generators/http-generator.d.ts.map +1 -0
  180. package/dist/docs/generators/http-generator.js +561 -0
  181. package/dist/docs/generators/http-generator.js.map +1 -0
  182. package/dist/docs/generators/index.d.ts +17 -0
  183. package/dist/docs/generators/index.d.ts.map +1 -0
  184. package/dist/docs/generators/index.js +30 -0
  185. package/dist/docs/generators/index.js.map +1 -0
  186. package/dist/docs/generators/jsonrpc-generator.d.ts +53 -0
  187. package/dist/docs/generators/jsonrpc-generator.d.ts.map +1 -0
  188. package/dist/docs/generators/jsonrpc-generator.js +111 -0
  189. package/dist/docs/generators/jsonrpc-generator.js.map +1 -0
  190. package/dist/docs/generators/schema-converter.d.ts +117 -0
  191. package/dist/docs/generators/schema-converter.d.ts.map +1 -0
  192. package/dist/docs/generators/schema-converter.js +370 -0
  193. package/dist/docs/generators/schema-converter.js.map +1 -0
  194. package/dist/docs/generators/streams-generator.d.ts +85 -0
  195. package/dist/docs/generators/streams-generator.d.ts.map +1 -0
  196. package/dist/docs/generators/streams-generator.js +282 -0
  197. package/dist/docs/generators/streams-generator.js.map +1 -0
  198. package/dist/docs/generators/tcp-generator.d.ts +133 -0
  199. package/dist/docs/generators/tcp-generator.d.ts.map +1 -0
  200. package/dist/docs/generators/tcp-generator.js +227 -0
  201. package/dist/docs/generators/tcp-generator.js.map +1 -0
  202. package/dist/docs/generators/udp-generator.d.ts +119 -0
  203. package/dist/docs/generators/udp-generator.d.ts.map +1 -0
  204. package/dist/docs/generators/udp-generator.js +241 -0
  205. package/dist/docs/generators/udp-generator.js.map +1 -0
  206. package/dist/docs/generators/usd-generator.d.ts +182 -0
  207. package/dist/docs/generators/usd-generator.d.ts.map +1 -0
  208. package/dist/docs/generators/usd-generator.js +473 -0
  209. package/dist/docs/generators/usd-generator.js.map +1 -0
  210. package/dist/docs/generators/websocket-generator.d.ts +49 -0
  211. package/dist/docs/generators/websocket-generator.d.ts.map +1 -0
  212. package/dist/docs/generators/websocket-generator.js +319 -0
  213. package/dist/docs/generators/websocket-generator.js.map +1 -0
  214. package/dist/docs/index.d.ts +31 -0
  215. package/dist/docs/index.d.ts.map +1 -0
  216. package/dist/docs/index.js +56 -0
  217. package/dist/docs/index.js.map +1 -0
  218. package/dist/docs/openapi/generator.d.ts +164 -0
  219. package/dist/docs/openapi/generator.d.ts.map +1 -0
  220. package/dist/docs/openapi/generator.int.test.d.ts +5 -0
  221. package/dist/docs/openapi/generator.int.test.d.ts.map +1 -0
  222. package/dist/docs/openapi/generator.int.test.js +260 -0
  223. package/dist/docs/openapi/generator.int.test.js.map +1 -0
  224. package/dist/docs/openapi/generator.js +690 -0
  225. package/dist/docs/openapi/generator.js.map +1 -0
  226. package/dist/docs/openapi/index.d.ts +7 -0
  227. package/dist/docs/openapi/index.d.ts.map +1 -0
  228. package/dist/docs/openapi/index.js +7 -0
  229. package/dist/docs/openapi/index.js.map +1 -0
  230. package/dist/docs/ui/html-builder.d.ts +19 -0
  231. package/dist/docs/ui/html-builder.d.ts.map +1 -0
  232. package/dist/docs/ui/html-builder.js +3065 -0
  233. package/dist/docs/ui/html-builder.js.map +1 -0
  234. package/dist/docs/ui/index.d.ts +8 -0
  235. package/dist/docs/ui/index.d.ts.map +1 -0
  236. package/dist/docs/ui/index.js +7 -0
  237. package/dist/docs/ui/index.js.map +1 -0
  238. package/dist/docs/ui/styles.d.ts +14 -0
  239. package/dist/docs/ui/styles.d.ts.map +1 -0
  240. package/dist/docs/ui/styles.js +2228 -0
  241. package/dist/docs/ui/styles.js.map +1 -0
  242. package/dist/docs/ui/types.d.ts +68 -0
  243. package/dist/docs/ui/types.d.ts.map +1 -0
  244. package/dist/docs/ui/types.js +7 -0
  245. package/dist/docs/ui/types.js.map +1 -0
  246. package/dist/docs/ui/utils.d.ts +24 -0
  247. package/dist/docs/ui/utils.d.ts.map +1 -0
  248. package/dist/docs/ui/utils.js +55 -0
  249. package/dist/docs/ui/utils.js.map +1 -0
  250. package/dist/docs/usd-middleware.d.ts +157 -0
  251. package/dist/docs/usd-middleware.d.ts.map +1 -0
  252. package/dist/docs/usd-middleware.js +118 -0
  253. package/dist/docs/usd-middleware.js.map +1 -0
  254. package/dist/dx/health/health.int.test.d.ts +5 -0
  255. package/dist/dx/health/health.int.test.d.ts.map +1 -0
  256. package/dist/dx/health/health.int.test.js +249 -0
  257. package/dist/dx/health/health.int.test.js.map +1 -0
  258. package/dist/dx/health/index.d.ts +82 -0
  259. package/dist/dx/health/index.d.ts.map +1 -0
  260. package/dist/dx/health/index.js +260 -0
  261. package/dist/dx/health/index.js.map +1 -0
  262. package/dist/dx/health/types.d.ts +104 -0
  263. package/dist/dx/health/types.d.ts.map +1 -0
  264. package/dist/dx/health/types.js +7 -0
  265. package/dist/dx/health/types.js.map +1 -0
  266. package/dist/dx/index.d.ts +12 -0
  267. package/dist/dx/index.d.ts.map +1 -0
  268. package/dist/dx/index.js +15 -0
  269. package/dist/dx/index.js.map +1 -0
  270. package/dist/dx/logging/formats.d.ts +46 -0
  271. package/dist/dx/logging/formats.d.ts.map +1 -0
  272. package/dist/dx/logging/formats.js +225 -0
  273. package/dist/dx/logging/formats.js.map +1 -0
  274. package/dist/dx/logging/http-logging.int.test.d.ts +5 -0
  275. package/dist/dx/logging/http-logging.int.test.d.ts.map +1 -0
  276. package/dist/dx/logging/http-logging.int.test.js +319 -0
  277. package/dist/dx/logging/http-logging.int.test.js.map +1 -0
  278. package/dist/dx/logging/index.d.ts +84 -0
  279. package/dist/dx/logging/index.d.ts.map +1 -0
  280. package/dist/dx/logging/index.js +164 -0
  281. package/dist/dx/logging/index.js.map +1 -0
  282. package/dist/dx/logging/types.d.ts +76 -0
  283. package/dist/dx/logging/types.d.ts.map +1 -0
  284. package/dist/dx/logging/types.js +7 -0
  285. package/dist/dx/logging/types.js.map +1 -0
  286. package/dist/errors/codes.d.ts +239 -0
  287. package/dist/errors/codes.d.ts.map +1 -0
  288. package/dist/errors/codes.js +286 -0
  289. package/dist/errors/codes.js.map +1 -0
  290. package/dist/errors/factories.d.ts +142 -0
  291. package/dist/errors/factories.d.ts.map +1 -0
  292. package/dist/errors/factories.js +201 -0
  293. package/dist/errors/factories.js.map +1 -0
  294. package/dist/errors/factories.unit.test.d.ts +7 -0
  295. package/dist/errors/factories.unit.test.d.ts.map +1 -0
  296. package/dist/errors/factories.unit.test.js +358 -0
  297. package/dist/errors/factories.unit.test.js.map +1 -0
  298. package/dist/errors/index.d.ts +9 -0
  299. package/dist/errors/index.d.ts.map +1 -0
  300. package/dist/errors/index.js +11 -0
  301. package/dist/errors/index.js.map +1 -0
  302. package/dist/graphql/adapter.d.ts +28 -0
  303. package/dist/graphql/adapter.d.ts.map +1 -0
  304. package/dist/graphql/adapter.js +624 -0
  305. package/dist/graphql/adapter.js.map +1 -0
  306. package/dist/graphql/index.d.ts +35 -0
  307. package/dist/graphql/index.d.ts.map +1 -0
  308. package/dist/graphql/index.js +35 -0
  309. package/dist/graphql/index.js.map +1 -0
  310. package/dist/graphql/schema-generator.d.ts +23 -0
  311. package/dist/graphql/schema-generator.d.ts.map +1 -0
  312. package/dist/graphql/schema-generator.int.test.d.ts +5 -0
  313. package/dist/graphql/schema-generator.int.test.d.ts.map +1 -0
  314. package/dist/graphql/schema-generator.int.test.js +51 -0
  315. package/dist/graphql/schema-generator.int.test.js.map +1 -0
  316. package/dist/graphql/schema-generator.js +502 -0
  317. package/dist/graphql/schema-generator.js.map +1 -0
  318. package/dist/graphql/types.d.ts +172 -0
  319. package/dist/graphql/types.d.ts.map +1 -0
  320. package/dist/graphql/types.js +7 -0
  321. package/dist/graphql/types.js.map +1 -0
  322. package/dist/http/app.d.ts +156 -0
  323. package/dist/http/app.d.ts.map +1 -0
  324. package/dist/http/app.js +421 -0
  325. package/dist/http/app.js.map +1 -0
  326. package/dist/http/auth.d.ts +617 -0
  327. package/dist/http/auth.d.ts.map +1 -0
  328. package/dist/http/auth.js +913 -0
  329. package/dist/http/auth.js.map +1 -0
  330. package/dist/http/banner.d.ts +118 -0
  331. package/dist/http/banner.d.ts.map +1 -0
  332. package/dist/http/banner.js +187 -0
  333. package/dist/http/banner.js.map +1 -0
  334. package/dist/http/body-limit.d.ts +80 -0
  335. package/dist/http/body-limit.d.ts.map +1 -0
  336. package/dist/http/body-limit.js +187 -0
  337. package/dist/http/body-limit.js.map +1 -0
  338. package/dist/http/compress.d.ts +67 -0
  339. package/dist/http/compress.d.ts.map +1 -0
  340. package/dist/http/compress.js +226 -0
  341. package/dist/http/compress.js.map +1 -0
  342. package/dist/http/context-helpers.d.ts +171 -0
  343. package/dist/http/context-helpers.d.ts.map +1 -0
  344. package/dist/http/context-helpers.js +325 -0
  345. package/dist/http/context-helpers.js.map +1 -0
  346. package/dist/http/context.d.ts +157 -0
  347. package/dist/http/context.d.ts.map +1 -0
  348. package/dist/http/context.js +217 -0
  349. package/dist/http/context.js.map +1 -0
  350. package/dist/http/cookie.d.ts +291 -0
  351. package/dist/http/cookie.d.ts.map +1 -0
  352. package/dist/http/cookie.js +585 -0
  353. package/dist/http/cookie.js.map +1 -0
  354. package/dist/http/cors.d.ts +95 -0
  355. package/dist/http/cors.d.ts.map +1 -0
  356. package/dist/http/cors.js +177 -0
  357. package/dist/http/cors.js.map +1 -0
  358. package/dist/http/errors.d.ts +286 -0
  359. package/dist/http/errors.d.ts.map +1 -0
  360. package/dist/http/errors.js +487 -0
  361. package/dist/http/errors.js.map +1 -0
  362. package/dist/http/events.d.ts +251 -0
  363. package/dist/http/events.d.ts.map +1 -0
  364. package/dist/http/events.js +321 -0
  365. package/dist/http/events.js.map +1 -0
  366. package/dist/http/failban.d.ts +230 -0
  367. package/dist/http/failban.d.ts.map +1 -0
  368. package/dist/http/failban.js +351 -0
  369. package/dist/http/failban.js.map +1 -0
  370. package/dist/http/guards.d.ts +210 -0
  371. package/dist/http/guards.d.ts.map +1 -0
  372. package/dist/http/guards.js +327 -0
  373. package/dist/http/guards.js.map +1 -0
  374. package/dist/http/health.d.ts +197 -0
  375. package/dist/http/health.d.ts.map +1 -0
  376. package/dist/http/health.js +255 -0
  377. package/dist/http/health.js.map +1 -0
  378. package/dist/http/index.d.ts +64 -0
  379. package/dist/http/index.d.ts.map +1 -0
  380. package/dist/http/index.js +130 -0
  381. package/dist/http/index.js.map +1 -0
  382. package/dist/http/oauth2.d.ts +280 -0
  383. package/dist/http/oauth2.d.ts.map +1 -0
  384. package/dist/http/oauth2.js +503 -0
  385. package/dist/http/oauth2.js.map +1 -0
  386. package/dist/http/oidc.d.ts +310 -0
  387. package/dist/http/oidc.d.ts.map +1 -0
  388. package/dist/http/oidc.js +470 -0
  389. package/dist/http/oidc.js.map +1 -0
  390. package/dist/http/rate-limit.d.ts +312 -0
  391. package/dist/http/rate-limit.d.ts.map +1 -0
  392. package/dist/http/rate-limit.js +522 -0
  393. package/dist/http/rate-limit.js.map +1 -0
  394. package/dist/http/response.d.ts +239 -0
  395. package/dist/http/response.d.ts.map +1 -0
  396. package/dist/http/response.js +352 -0
  397. package/dist/http/response.js.map +1 -0
  398. package/dist/http/security.d.ts +233 -0
  399. package/dist/http/security.d.ts.map +1 -0
  400. package/dist/http/security.js +230 -0
  401. package/dist/http/security.js.map +1 -0
  402. package/dist/http/serve.d.ts +72 -0
  403. package/dist/http/serve.d.ts.map +1 -0
  404. package/dist/http/serve.js +200 -0
  405. package/dist/http/serve.js.map +1 -0
  406. package/dist/http/session.d.ts +279 -0
  407. package/dist/http/session.d.ts.map +1 -0
  408. package/dist/http/session.js +354 -0
  409. package/dist/http/session.js.map +1 -0
  410. package/dist/http/static-s3.d.ts +176 -0
  411. package/dist/http/static-s3.d.ts.map +1 -0
  412. package/dist/http/static-s3.js +282 -0
  413. package/dist/http/static-s3.js.map +1 -0
  414. package/dist/http/static.d.ts +111 -0
  415. package/dist/http/static.d.ts.map +1 -0
  416. package/dist/http/static.js +373 -0
  417. package/dist/http/static.js.map +1 -0
  418. package/dist/http/stream-auth.d.ts +312 -0
  419. package/dist/http/stream-auth.d.ts.map +1 -0
  420. package/dist/http/stream-auth.js +404 -0
  421. package/dist/http/stream-auth.js.map +1 -0
  422. package/dist/http/templates.d.ts +262 -0
  423. package/dist/http/templates.d.ts.map +1 -0
  424. package/dist/http/templates.js +457 -0
  425. package/dist/http/templates.js.map +1 -0
  426. package/dist/http/types.d.ts +97 -0
  427. package/dist/http/types.d.ts.map +1 -0
  428. package/dist/http/types.js +59 -0
  429. package/dist/http/types.js.map +1 -0
  430. package/dist/http/validate.d.ts +197 -0
  431. package/dist/http/validate.d.ts.map +1 -0
  432. package/dist/http/validate.js +437 -0
  433. package/dist/http/validate.js.map +1 -0
  434. package/dist/http/web-types.d.ts +38 -0
  435. package/dist/http/web-types.d.ts.map +1 -0
  436. package/dist/http/web-types.js +9 -0
  437. package/dist/http/web-types.js.map +1 -0
  438. package/dist/index.d.ts +45 -0
  439. package/dist/index.d.ts.map +1 -0
  440. package/dist/index.js +96 -0
  441. package/dist/index.js.map +1 -0
  442. package/dist/mcp/cli.d.ts +18 -0
  443. package/dist/mcp/cli.d.ts.map +1 -0
  444. package/dist/mcp/cli.js +185 -0
  445. package/dist/mcp/cli.js.map +1 -0
  446. package/dist/mcp/docs/adapters.d.ts +10 -0
  447. package/dist/mcp/docs/adapters.d.ts.map +1 -0
  448. package/dist/mcp/docs/adapters.js +891 -0
  449. package/dist/mcp/docs/adapters.js.map +1 -0
  450. package/dist/mcp/docs/errors.d.ts +11 -0
  451. package/dist/mcp/docs/errors.d.ts.map +1 -0
  452. package/dist/mcp/docs/errors.js +549 -0
  453. package/dist/mcp/docs/errors.js.map +1 -0
  454. package/dist/mcp/docs/index.d.ts +38 -0
  455. package/dist/mcp/docs/index.d.ts.map +1 -0
  456. package/dist/mcp/docs/index.js +94 -0
  457. package/dist/mcp/docs/index.js.map +1 -0
  458. package/dist/mcp/docs/interceptors.d.ts +18 -0
  459. package/dist/mcp/docs/interceptors.d.ts.map +1 -0
  460. package/dist/mcp/docs/interceptors.js +872 -0
  461. package/dist/mcp/docs/interceptors.js.map +1 -0
  462. package/dist/mcp/docs/patterns.d.ts +12 -0
  463. package/dist/mcp/docs/patterns.d.ts.map +1 -0
  464. package/dist/mcp/docs/patterns.js +1099 -0
  465. package/dist/mcp/docs/patterns.js.map +1 -0
  466. package/dist/mcp/docs/quickstart.d.ts +52 -0
  467. package/dist/mcp/docs/quickstart.d.ts.map +1 -0
  468. package/dist/mcp/docs/quickstart.js +682 -0
  469. package/dist/mcp/docs/quickstart.js.map +1 -0
  470. package/dist/mcp/index.d.ts +14 -0
  471. package/dist/mcp/index.d.ts.map +1 -0
  472. package/dist/mcp/index.js +18 -0
  473. package/dist/mcp/index.js.map +1 -0
  474. package/dist/mcp/prompts/index.d.ts +11 -0
  475. package/dist/mcp/prompts/index.d.ts.map +1 -0
  476. package/dist/mcp/prompts/index.js +596 -0
  477. package/dist/mcp/prompts/index.js.map +1 -0
  478. package/dist/mcp/resources/index.d.ts +10 -0
  479. package/dist/mcp/resources/index.d.ts.map +1 -0
  480. package/dist/mcp/resources/index.js +262 -0
  481. package/dist/mcp/resources/index.js.map +1 -0
  482. package/dist/mcp/server.d.ts +35 -0
  483. package/dist/mcp/server.d.ts.map +1 -0
  484. package/dist/mcp/server.js +452 -0
  485. package/dist/mcp/server.js.map +1 -0
  486. package/dist/mcp/tools/definitions.d.ts +15 -0
  487. package/dist/mcp/tools/definitions.d.ts.map +1 -0
  488. package/dist/mcp/tools/definitions.js +395 -0
  489. package/dist/mcp/tools/definitions.js.map +1 -0
  490. package/dist/mcp/tools/handlers.d.ts +8 -0
  491. package/dist/mcp/tools/handlers.d.ts.map +1 -0
  492. package/dist/mcp/tools/handlers.js +883 -0
  493. package/dist/mcp/tools/handlers.js.map +1 -0
  494. package/dist/mcp/tools/index.d.ts +8 -0
  495. package/dist/mcp/tools/index.d.ts.map +1 -0
  496. package/dist/mcp/tools/index.js +8 -0
  497. package/dist/mcp/tools/index.js.map +1 -0
  498. package/dist/mcp/types.d.ts +248 -0
  499. package/dist/mcp/types.d.ts.map +1 -0
  500. package/dist/mcp/types.js +13 -0
  501. package/dist/mcp/types.js.map +1 -0
  502. package/dist/metrics/exporters.d.ts +20 -0
  503. package/dist/metrics/exporters.d.ts.map +1 -0
  504. package/dist/metrics/exporters.js +122 -0
  505. package/dist/metrics/exporters.js.map +1 -0
  506. package/dist/metrics/index.d.ts +11 -0
  507. package/dist/metrics/index.d.ts.map +1 -0
  508. package/dist/metrics/index.js +10 -0
  509. package/dist/metrics/index.js.map +1 -0
  510. package/dist/metrics/interceptor.d.ts +29 -0
  511. package/dist/metrics/interceptor.d.ts.map +1 -0
  512. package/dist/metrics/interceptor.js +146 -0
  513. package/dist/metrics/interceptor.js.map +1 -0
  514. package/dist/metrics/metrics.int.test.d.ts +5 -0
  515. package/dist/metrics/metrics.int.test.d.ts.map +1 -0
  516. package/dist/metrics/metrics.int.test.js +288 -0
  517. package/dist/metrics/metrics.int.test.js.map +1 -0
  518. package/dist/metrics/registry.d.ts +11 -0
  519. package/dist/metrics/registry.d.ts.map +1 -0
  520. package/dist/metrics/registry.js +178 -0
  521. package/dist/metrics/registry.js.map +1 -0
  522. package/dist/metrics/types.d.ts +107 -0
  523. package/dist/metrics/types.d.ts.map +1 -0
  524. package/dist/metrics/types.js +21 -0
  525. package/dist/metrics/types.js.map +1 -0
  526. package/dist/middleware/auth.d.ts +231 -0
  527. package/dist/middleware/auth.d.ts.map +1 -0
  528. package/dist/middleware/auth.int.test.d.ts +5 -0
  529. package/dist/middleware/auth.int.test.d.ts.map +1 -0
  530. package/dist/middleware/auth.int.test.js +366 -0
  531. package/dist/middleware/auth.int.test.js.map +1 -0
  532. package/dist/middleware/auth.js +413 -0
  533. package/dist/middleware/auth.js.map +1 -0
  534. package/dist/middleware/compose.d.ts +102 -0
  535. package/dist/middleware/compose.d.ts.map +1 -0
  536. package/dist/middleware/compose.int.test.d.ts +7 -0
  537. package/dist/middleware/compose.int.test.d.ts.map +1 -0
  538. package/dist/middleware/compose.int.test.js +238 -0
  539. package/dist/middleware/compose.int.test.js.map +1 -0
  540. package/dist/middleware/compose.js +152 -0
  541. package/dist/middleware/compose.js.map +1 -0
  542. package/dist/middleware/http/compression.d.ts +92 -0
  543. package/dist/middleware/http/compression.d.ts.map +1 -0
  544. package/dist/middleware/http/compression.js +264 -0
  545. package/dist/middleware/http/compression.js.map +1 -0
  546. package/dist/middleware/http/index.d.ts +10 -0
  547. package/dist/middleware/http/index.d.ts.map +1 -0
  548. package/dist/middleware/http/index.js +11 -0
  549. package/dist/middleware/http/index.js.map +1 -0
  550. package/dist/middleware/http/security.d.ts +71 -0
  551. package/dist/middleware/http/security.d.ts.map +1 -0
  552. package/dist/middleware/http/security.js +263 -0
  553. package/dist/middleware/http/security.js.map +1 -0
  554. package/dist/middleware/index.d.ts +28 -0
  555. package/dist/middleware/index.d.ts.map +1 -0
  556. package/dist/middleware/index.js +58 -0
  557. package/dist/middleware/index.js.map +1 -0
  558. package/dist/middleware/interceptors/bulkhead.d.ts +104 -0
  559. package/dist/middleware/interceptors/bulkhead.d.ts.map +1 -0
  560. package/dist/middleware/interceptors/bulkhead.int.test.d.ts +5 -0
  561. package/dist/middleware/interceptors/bulkhead.int.test.d.ts.map +1 -0
  562. package/dist/middleware/interceptors/bulkhead.int.test.js +263 -0
  563. package/dist/middleware/interceptors/bulkhead.int.test.js.map +1 -0
  564. package/dist/middleware/interceptors/bulkhead.js +260 -0
  565. package/dist/middleware/interceptors/bulkhead.js.map +1 -0
  566. package/dist/middleware/interceptors/cache.d.ts +218 -0
  567. package/dist/middleware/interceptors/cache.d.ts.map +1 -0
  568. package/dist/middleware/interceptors/cache.int.test.d.ts +5 -0
  569. package/dist/middleware/interceptors/cache.int.test.d.ts.map +1 -0
  570. package/dist/middleware/interceptors/cache.int.test.js +470 -0
  571. package/dist/middleware/interceptors/cache.int.test.js.map +1 -0
  572. package/dist/middleware/interceptors/cache.js +505 -0
  573. package/dist/middleware/interceptors/cache.js.map +1 -0
  574. package/dist/middleware/interceptors/circuit-breaker.d.ts +72 -0
  575. package/dist/middleware/interceptors/circuit-breaker.d.ts.map +1 -0
  576. package/dist/middleware/interceptors/circuit-breaker.int.test.d.ts +5 -0
  577. package/dist/middleware/interceptors/circuit-breaker.int.test.d.ts.map +1 -0
  578. package/dist/middleware/interceptors/circuit-breaker.int.test.js +253 -0
  579. package/dist/middleware/interceptors/circuit-breaker.int.test.js.map +1 -0
  580. package/dist/middleware/interceptors/circuit-breaker.js +268 -0
  581. package/dist/middleware/interceptors/circuit-breaker.js.map +1 -0
  582. package/dist/middleware/interceptors/dedup.d.ts +105 -0
  583. package/dist/middleware/interceptors/dedup.d.ts.map +1 -0
  584. package/dist/middleware/interceptors/dedup.js +219 -0
  585. package/dist/middleware/interceptors/dedup.js.map +1 -0
  586. package/dist/middleware/interceptors/fallback.d.ts +94 -0
  587. package/dist/middleware/interceptors/fallback.d.ts.map +1 -0
  588. package/dist/middleware/interceptors/fallback.int.test.d.ts +5 -0
  589. package/dist/middleware/interceptors/fallback.int.test.d.ts.map +1 -0
  590. package/dist/middleware/interceptors/fallback.int.test.js +211 -0
  591. package/dist/middleware/interceptors/fallback.int.test.js.map +1 -0
  592. package/dist/middleware/interceptors/fallback.js +161 -0
  593. package/dist/middleware/interceptors/fallback.js.map +1 -0
  594. package/dist/middleware/interceptors/index.d.ts +24 -0
  595. package/dist/middleware/interceptors/index.d.ts.map +1 -0
  596. package/dist/middleware/interceptors/index.js +28 -0
  597. package/dist/middleware/interceptors/index.js.map +1 -0
  598. package/dist/middleware/interceptors/logging.d.ts +62 -0
  599. package/dist/middleware/interceptors/logging.d.ts.map +1 -0
  600. package/dist/middleware/interceptors/logging.int.test.d.ts +5 -0
  601. package/dist/middleware/interceptors/logging.int.test.d.ts.map +1 -0
  602. package/dist/middleware/interceptors/logging.int.test.js +144 -0
  603. package/dist/middleware/interceptors/logging.int.test.js.map +1 -0
  604. package/dist/middleware/interceptors/logging.js +294 -0
  605. package/dist/middleware/interceptors/logging.js.map +1 -0
  606. package/dist/middleware/interceptors/rate-limit.d.ts +147 -0
  607. package/dist/middleware/interceptors/rate-limit.d.ts.map +1 -0
  608. package/dist/middleware/interceptors/rate-limit.int.test.d.ts +5 -0
  609. package/dist/middleware/interceptors/rate-limit.int.test.d.ts.map +1 -0
  610. package/dist/middleware/interceptors/rate-limit.int.test.js +221 -0
  611. package/dist/middleware/interceptors/rate-limit.int.test.js.map +1 -0
  612. package/dist/middleware/interceptors/rate-limit.js +376 -0
  613. package/dist/middleware/interceptors/rate-limit.js.map +1 -0
  614. package/dist/middleware/interceptors/request-id.d.ts +63 -0
  615. package/dist/middleware/interceptors/request-id.d.ts.map +1 -0
  616. package/dist/middleware/interceptors/request-id.int.test.d.ts +5 -0
  617. package/dist/middleware/interceptors/request-id.int.test.d.ts.map +1 -0
  618. package/dist/middleware/interceptors/request-id.int.test.js +136 -0
  619. package/dist/middleware/interceptors/request-id.int.test.js.map +1 -0
  620. package/dist/middleware/interceptors/request-id.js +119 -0
  621. package/dist/middleware/interceptors/request-id.js.map +1 -0
  622. package/dist/middleware/interceptors/retry.d.ts +80 -0
  623. package/dist/middleware/interceptors/retry.d.ts.map +1 -0
  624. package/dist/middleware/interceptors/retry.int.test.d.ts +5 -0
  625. package/dist/middleware/interceptors/retry.int.test.d.ts.map +1 -0
  626. package/dist/middleware/interceptors/retry.int.test.js +534 -0
  627. package/dist/middleware/interceptors/retry.int.test.js.map +1 -0
  628. package/dist/middleware/interceptors/retry.js +275 -0
  629. package/dist/middleware/interceptors/retry.js.map +1 -0
  630. package/dist/middleware/interceptors/size-limit.d.ts +145 -0
  631. package/dist/middleware/interceptors/size-limit.d.ts.map +1 -0
  632. package/dist/middleware/interceptors/size-limit.js +231 -0
  633. package/dist/middleware/interceptors/size-limit.js.map +1 -0
  634. package/dist/middleware/interceptors/timeout.d.ts +121 -0
  635. package/dist/middleware/interceptors/timeout.d.ts.map +1 -0
  636. package/dist/middleware/interceptors/timeout.int.test.d.ts +5 -0
  637. package/dist/middleware/interceptors/timeout.int.test.d.ts.map +1 -0
  638. package/dist/middleware/interceptors/timeout.int.test.js +228 -0
  639. package/dist/middleware/interceptors/timeout.int.test.js.map +1 -0
  640. package/dist/middleware/interceptors/timeout.js +253 -0
  641. package/dist/middleware/interceptors/timeout.js.map +1 -0
  642. package/dist/middleware/presets.d.ts +214 -0
  643. package/dist/middleware/presets.d.ts.map +1 -0
  644. package/dist/middleware/presets.js +329 -0
  645. package/dist/middleware/presets.js.map +1 -0
  646. package/dist/middleware/rate-limit.d.ts +105 -0
  647. package/dist/middleware/rate-limit.d.ts.map +1 -0
  648. package/dist/middleware/rate-limit.int.test.d.ts +5 -0
  649. package/dist/middleware/rate-limit.int.test.d.ts.map +1 -0
  650. package/dist/middleware/rate-limit.int.test.js +350 -0
  651. package/dist/middleware/rate-limit.int.test.js.map +1 -0
  652. package/dist/middleware/rate-limit.js +206 -0
  653. package/dist/middleware/rate-limit.js.map +1 -0
  654. package/dist/middleware/types.d.ts +371 -0
  655. package/dist/middleware/types.d.ts.map +1 -0
  656. package/dist/middleware/types.js +7 -0
  657. package/dist/middleware/types.js.map +1 -0
  658. package/dist/openapi/index.d.ts +9 -0
  659. package/dist/openapi/index.d.ts.map +1 -0
  660. package/dist/openapi/index.js +9 -0
  661. package/dist/openapi/index.js.map +1 -0
  662. package/dist/rate-limit/drivers/filesystem.d.ts +17 -0
  663. package/dist/rate-limit/drivers/filesystem.d.ts.map +1 -0
  664. package/dist/rate-limit/drivers/filesystem.js +85 -0
  665. package/dist/rate-limit/drivers/filesystem.js.map +1 -0
  666. package/dist/rate-limit/drivers/memory.d.ts +15 -0
  667. package/dist/rate-limit/drivers/memory.d.ts.map +1 -0
  668. package/dist/rate-limit/drivers/memory.js +55 -0
  669. package/dist/rate-limit/drivers/memory.js.map +1 -0
  670. package/dist/rate-limit/drivers/redis.d.ts +12 -0
  671. package/dist/rate-limit/drivers/redis.d.ts.map +1 -0
  672. package/dist/rate-limit/drivers/redis.js +46 -0
  673. package/dist/rate-limit/drivers/redis.js.map +1 -0
  674. package/dist/rate-limit/factory.d.ts +11 -0
  675. package/dist/rate-limit/factory.d.ts.map +1 -0
  676. package/dist/rate-limit/factory.js +33 -0
  677. package/dist/rate-limit/factory.js.map +1 -0
  678. package/dist/rate-limit/index.d.ts +6 -0
  679. package/dist/rate-limit/index.d.ts.map +1 -0
  680. package/dist/rate-limit/index.js +5 -0
  681. package/dist/rate-limit/index.js.map +1 -0
  682. package/dist/rate-limit/types.d.ts +51 -0
  683. package/dist/rate-limit/types.d.ts.map +1 -0
  684. package/dist/rate-limit/types.js +7 -0
  685. package/dist/rate-limit/types.js.map +1 -0
  686. package/dist/server/builder.d.ts +11 -0
  687. package/dist/server/builder.d.ts.map +1 -0
  688. package/dist/server/builder.int.test.d.ts +7 -0
  689. package/dist/server/builder.int.test.d.ts.map +1 -0
  690. package/dist/server/builder.int.test.js +414 -0
  691. package/dist/server/builder.int.test.js.map +1 -0
  692. package/dist/server/builder.js +1682 -0
  693. package/dist/server/builder.js.map +1 -0
  694. package/dist/server/channel-utils.d.ts +34 -0
  695. package/dist/server/channel-utils.d.ts.map +1 -0
  696. package/dist/server/channel-utils.js +131 -0
  697. package/dist/server/channel-utils.js.map +1 -0
  698. package/dist/server/discovery-utils.d.ts +32 -0
  699. package/dist/server/discovery-utils.d.ts.map +1 -0
  700. package/dist/server/discovery-utils.js +118 -0
  701. package/dist/server/discovery-utils.js.map +1 -0
  702. package/dist/server/errors.d.ts +186 -0
  703. package/dist/server/errors.d.ts.map +1 -0
  704. package/dist/server/errors.js +397 -0
  705. package/dist/server/errors.js.map +1 -0
  706. package/dist/server/fs-routes/index.d.ts +66 -0
  707. package/dist/server/fs-routes/index.d.ts.map +1 -0
  708. package/dist/server/fs-routes/index.js +66 -0
  709. package/dist/server/fs-routes/index.js.map +1 -0
  710. package/dist/server/fs-routes/loader.d.ts +28 -0
  711. package/dist/server/fs-routes/loader.d.ts.map +1 -0
  712. package/dist/server/fs-routes/loader.int.test.d.ts +5 -0
  713. package/dist/server/fs-routes/loader.int.test.d.ts.map +1 -0
  714. package/dist/server/fs-routes/loader.int.test.js +48 -0
  715. package/dist/server/fs-routes/loader.int.test.js.map +1 -0
  716. package/dist/server/fs-routes/loader.js +586 -0
  717. package/dist/server/fs-routes/loader.js.map +1 -0
  718. package/dist/server/fs-routes/middleware-processor.d.ts +19 -0
  719. package/dist/server/fs-routes/middleware-processor.d.ts.map +1 -0
  720. package/dist/server/fs-routes/middleware-processor.js +232 -0
  721. package/dist/server/fs-routes/middleware-processor.js.map +1 -0
  722. package/dist/server/fs-routes/resources/index.d.ts +8 -0
  723. package/dist/server/fs-routes/resources/index.d.ts.map +1 -0
  724. package/dist/server/fs-routes/resources/index.js +8 -0
  725. package/dist/server/fs-routes/resources/index.js.map +1 -0
  726. package/dist/server/fs-routes/resources/loader.d.ts +16 -0
  727. package/dist/server/fs-routes/resources/loader.d.ts.map +1 -0
  728. package/dist/server/fs-routes/resources/loader.js +431 -0
  729. package/dist/server/fs-routes/resources/loader.js.map +1 -0
  730. package/dist/server/fs-routes/resources/types.d.ts +256 -0
  731. package/dist/server/fs-routes/resources/types.d.ts.map +1 -0
  732. package/dist/server/fs-routes/resources/types.js +8 -0
  733. package/dist/server/fs-routes/resources/types.js.map +1 -0
  734. package/dist/server/fs-routes/rest/index.d.ts +8 -0
  735. package/dist/server/fs-routes/rest/index.d.ts.map +1 -0
  736. package/dist/server/fs-routes/rest/index.js +8 -0
  737. package/dist/server/fs-routes/rest/index.js.map +1 -0
  738. package/dist/server/fs-routes/rest/loader.d.ts +11 -0
  739. package/dist/server/fs-routes/rest/loader.d.ts.map +1 -0
  740. package/dist/server/fs-routes/rest/loader.js +595 -0
  741. package/dist/server/fs-routes/rest/loader.js.map +1 -0
  742. package/dist/server/fs-routes/rest/types.d.ts +288 -0
  743. package/dist/server/fs-routes/rest/types.d.ts.map +1 -0
  744. package/dist/server/fs-routes/rest/types.js +50 -0
  745. package/dist/server/fs-routes/rest/types.js.map +1 -0
  746. package/dist/server/fs-routes/tcp/index.d.ts +8 -0
  747. package/dist/server/fs-routes/tcp/index.d.ts.map +1 -0
  748. package/dist/server/fs-routes/tcp/index.js +8 -0
  749. package/dist/server/fs-routes/tcp/index.js.map +1 -0
  750. package/dist/server/fs-routes/tcp/loader.d.ts +15 -0
  751. package/dist/server/fs-routes/tcp/loader.d.ts.map +1 -0
  752. package/dist/server/fs-routes/tcp/loader.js +402 -0
  753. package/dist/server/fs-routes/tcp/loader.js.map +1 -0
  754. package/dist/server/fs-routes/tcp/types.d.ts +215 -0
  755. package/dist/server/fs-routes/tcp/types.d.ts.map +1 -0
  756. package/dist/server/fs-routes/tcp/types.js +7 -0
  757. package/dist/server/fs-routes/tcp/types.js.map +1 -0
  758. package/dist/server/fs-routes/types.d.ts +437 -0
  759. package/dist/server/fs-routes/types.d.ts.map +1 -0
  760. package/dist/server/fs-routes/types.js +7 -0
  761. package/dist/server/fs-routes/types.js.map +1 -0
  762. package/dist/server/fs-routes/udp/index.d.ts +8 -0
  763. package/dist/server/fs-routes/udp/index.d.ts.map +1 -0
  764. package/dist/server/fs-routes/udp/index.js +8 -0
  765. package/dist/server/fs-routes/udp/index.js.map +1 -0
  766. package/dist/server/fs-routes/udp/loader.d.ts +15 -0
  767. package/dist/server/fs-routes/udp/loader.d.ts.map +1 -0
  768. package/dist/server/fs-routes/udp/loader.js +282 -0
  769. package/dist/server/fs-routes/udp/loader.js.map +1 -0
  770. package/dist/server/fs-routes/udp/types.d.ts +164 -0
  771. package/dist/server/fs-routes/udp/types.d.ts.map +1 -0
  772. package/dist/server/fs-routes/udp/types.js +7 -0
  773. package/dist/server/fs-routes/udp/types.js.map +1 -0
  774. package/dist/server/fs-routes/watcher.d.ts +34 -0
  775. package/dist/server/fs-routes/watcher.d.ts.map +1 -0
  776. package/dist/server/fs-routes/watcher.js +158 -0
  777. package/dist/server/fs-routes/watcher.js.map +1 -0
  778. package/dist/server/handler-builders.d.ts +44 -0
  779. package/dist/server/handler-builders.d.ts.map +1 -0
  780. package/dist/server/handler-builders.js +297 -0
  781. package/dist/server/handler-builders.js.map +1 -0
  782. package/dist/server/hooks.int.test.d.ts +7 -0
  783. package/dist/server/hooks.int.test.d.ts.map +1 -0
  784. package/dist/server/hooks.int.test.js +564 -0
  785. package/dist/server/hooks.int.test.js.map +1 -0
  786. package/dist/server/index.d.ts +18 -0
  787. package/dist/server/index.d.ts.map +1 -0
  788. package/dist/server/index.js +37 -0
  789. package/dist/server/index.js.map +1 -0
  790. package/dist/server/protocol-config.d.ts +22 -0
  791. package/dist/server/protocol-config.d.ts.map +1 -0
  792. package/dist/server/protocol-config.js +61 -0
  793. package/dist/server/protocol-config.js.map +1 -0
  794. package/dist/server/resource-builder.d.ts +175 -0
  795. package/dist/server/resource-builder.d.ts.map +1 -0
  796. package/dist/server/resource-builder.js +212 -0
  797. package/dist/server/resource-builder.js.map +1 -0
  798. package/dist/server/rest-middleware.d.ts +45 -0
  799. package/dist/server/rest-middleware.d.ts.map +1 -0
  800. package/dist/server/rest-middleware.js +368 -0
  801. package/dist/server/rest-middleware.js.map +1 -0
  802. package/dist/server/route-discovery.d.ts +54 -0
  803. package/dist/server/route-discovery.d.ts.map +1 -0
  804. package/dist/server/route-discovery.int.test.d.ts +5 -0
  805. package/dist/server/route-discovery.int.test.d.ts.map +1 -0
  806. package/dist/server/route-discovery.int.test.js +49 -0
  807. package/dist/server/route-discovery.int.test.js.map +1 -0
  808. package/dist/server/route-discovery.js +154 -0
  809. package/dist/server/route-discovery.js.map +1 -0
  810. package/dist/server/router-module.d.ts +50 -0
  811. package/dist/server/router-module.d.ts.map +1 -0
  812. package/dist/server/router-module.js +250 -0
  813. package/dist/server/router-module.js.map +1 -0
  814. package/dist/server/shared-context.d.ts +140 -0
  815. package/dist/server/shared-context.d.ts.map +1 -0
  816. package/dist/server/shared-context.js +258 -0
  817. package/dist/server/shared-context.js.map +1 -0
  818. package/dist/server/types.d.ts +2160 -0
  819. package/dist/server/types.d.ts.map +1 -0
  820. package/dist/server/types.js +7 -0
  821. package/dist/server/types.js.map +1 -0
  822. package/dist/stream/index.d.ts +3 -0
  823. package/dist/stream/index.d.ts.map +1 -0
  824. package/dist/stream/index.js +2 -0
  825. package/dist/stream/index.js.map +1 -0
  826. package/dist/stream/raffel-stream.d.ts +17 -0
  827. package/dist/stream/raffel-stream.d.ts.map +1 -0
  828. package/dist/stream/raffel-stream.int.test.d.ts +2 -0
  829. package/dist/stream/raffel-stream.int.test.d.ts.map +1 -0
  830. package/dist/stream/raffel-stream.int.test.js +265 -0
  831. package/dist/stream/raffel-stream.int.test.js.map +1 -0
  832. package/dist/stream/raffel-stream.js +205 -0
  833. package/dist/stream/raffel-stream.js.map +1 -0
  834. package/dist/tracing/exporters.d.ts +47 -0
  835. package/dist/tracing/exporters.d.ts.map +1 -0
  836. package/dist/tracing/exporters.js +173 -0
  837. package/dist/tracing/exporters.js.map +1 -0
  838. package/dist/tracing/index.d.ts +43 -0
  839. package/dist/tracing/index.d.ts.map +1 -0
  840. package/dist/tracing/index.js +46 -0
  841. package/dist/tracing/index.js.map +1 -0
  842. package/dist/tracing/interceptor.d.ts +20 -0
  843. package/dist/tracing/interceptor.d.ts.map +1 -0
  844. package/dist/tracing/interceptor.js +90 -0
  845. package/dist/tracing/interceptor.js.map +1 -0
  846. package/dist/tracing/sampler.d.ts +32 -0
  847. package/dist/tracing/sampler.d.ts.map +1 -0
  848. package/dist/tracing/sampler.js +111 -0
  849. package/dist/tracing/sampler.js.map +1 -0
  850. package/dist/tracing/span.d.ts +32 -0
  851. package/dist/tracing/span.d.ts.map +1 -0
  852. package/dist/tracing/span.js +139 -0
  853. package/dist/tracing/span.js.map +1 -0
  854. package/dist/tracing/tracer.d.ts +11 -0
  855. package/dist/tracing/tracer.d.ts.map +1 -0
  856. package/dist/tracing/tracer.js +149 -0
  857. package/dist/tracing/tracer.js.map +1 -0
  858. package/dist/tracing/tracing.int.test.d.ts +5 -0
  859. package/dist/tracing/tracing.int.test.d.ts.map +1 -0
  860. package/dist/tracing/tracing.int.test.js +412 -0
  861. package/dist/tracing/tracing.int.test.js.map +1 -0
  862. package/dist/tracing/types.d.ts +175 -0
  863. package/dist/tracing/types.d.ts.map +1 -0
  864. package/dist/tracing/types.js +16 -0
  865. package/dist/tracing/types.js.map +1 -0
  866. package/dist/types/context.d.ts +96 -0
  867. package/dist/types/context.d.ts.map +1 -0
  868. package/dist/types/context.js +55 -0
  869. package/dist/types/context.js.map +1 -0
  870. package/dist/types/envelope.d.ts +57 -0
  871. package/dist/types/envelope.d.ts.map +1 -0
  872. package/dist/types/envelope.js +39 -0
  873. package/dist/types/envelope.js.map +1 -0
  874. package/dist/types/handlers.d.ts +142 -0
  875. package/dist/types/handlers.d.ts.map +1 -0
  876. package/dist/types/handlers.js +7 -0
  877. package/dist/types/handlers.js.map +1 -0
  878. package/dist/types/index.d.ts +7 -0
  879. package/dist/types/index.d.ts.map +1 -0
  880. package/dist/types/index.js +3 -0
  881. package/dist/types/index.js.map +1 -0
  882. package/dist/types/stream.d.ts +69 -0
  883. package/dist/types/stream.d.ts.map +1 -0
  884. package/dist/types/stream.js +7 -0
  885. package/dist/types/stream.js.map +1 -0
  886. package/dist/ui/core/event-delivery.d.ts +38 -0
  887. package/dist/ui/core/event-delivery.d.ts.map +1 -0
  888. package/dist/ui/core/registry.d.ts +93 -0
  889. package/dist/ui/core/registry.d.ts.map +1 -0
  890. package/dist/ui/core/router.d.ts +70 -0
  891. package/dist/ui/core/router.d.ts.map +1 -0
  892. package/dist/ui/docs/openapi/generator.d.ts +164 -0
  893. package/dist/ui/docs/openapi/generator.d.ts.map +1 -0
  894. package/dist/ui/docs/openapi/index.d.ts +7 -0
  895. package/dist/ui/docs/openapi/index.d.ts.map +1 -0
  896. package/dist/ui/docs/ui/html-builder.d.ts +19 -0
  897. package/dist/ui/docs/ui/html-builder.d.ts.map +1 -0
  898. package/dist/ui/docs/ui/index.d.ts +8 -0
  899. package/dist/ui/docs/ui/index.d.ts.map +1 -0
  900. package/dist/ui/docs/ui/styles.d.ts +14 -0
  901. package/dist/ui/docs/ui/styles.d.ts.map +1 -0
  902. package/dist/ui/docs/ui/types.d.ts +68 -0
  903. package/dist/ui/docs/ui/types.d.ts.map +1 -0
  904. package/dist/ui/docs/ui/utils.d.ts +24 -0
  905. package/dist/ui/docs/ui/utils.d.ts.map +1 -0
  906. package/dist/ui/errors/codes.d.ts +239 -0
  907. package/dist/ui/errors/codes.d.ts.map +1 -0
  908. package/dist/ui/types/context.d.ts +96 -0
  909. package/dist/ui/types/context.d.ts.map +1 -0
  910. package/dist/ui/types/envelope.d.ts +57 -0
  911. package/dist/ui/types/envelope.d.ts.map +1 -0
  912. package/dist/ui/types/handlers.d.ts +142 -0
  913. package/dist/ui/types/handlers.d.ts.map +1 -0
  914. package/dist/ui/types/index.d.ts +7 -0
  915. package/dist/ui/types/index.d.ts.map +1 -0
  916. package/dist/ui/types/stream.d.ts +69 -0
  917. package/dist/ui/types/stream.d.ts.map +1 -0
  918. package/dist/ui/usd/builder/document.d.ts +190 -0
  919. package/dist/ui/usd/builder/document.d.ts.map +1 -0
  920. package/dist/ui/usd/builder/grpc.d.ts +119 -0
  921. package/dist/ui/usd/builder/grpc.d.ts.map +1 -0
  922. package/dist/ui/usd/builder/http.d.ts +131 -0
  923. package/dist/ui/usd/builder/http.d.ts.map +1 -0
  924. package/dist/ui/usd/builder/index.d.ts +15 -0
  925. package/dist/ui/usd/builder/index.d.ts.map +1 -0
  926. package/dist/ui/usd/builder/jsonrpc.d.ts +96 -0
  927. package/dist/ui/usd/builder/jsonrpc.d.ts.map +1 -0
  928. package/dist/ui/usd/builder/schema.d.ts +143 -0
  929. package/dist/ui/usd/builder/schema.d.ts.map +1 -0
  930. package/dist/ui/usd/builder/streams.d.ts +71 -0
  931. package/dist/ui/usd/builder/streams.d.ts.map +1 -0
  932. package/dist/ui/usd/builder/tcp.d.ts +61 -0
  933. package/dist/ui/usd/builder/tcp.d.ts.map +1 -0
  934. package/dist/ui/usd/builder/udp.d.ts +64 -0
  935. package/dist/ui/usd/builder/udp.d.ts.map +1 -0
  936. package/dist/ui/usd/builder/websocket.d.ts +131 -0
  937. package/dist/ui/usd/builder/websocket.d.ts.map +1 -0
  938. package/dist/ui/usd/export/index.d.ts +8 -0
  939. package/dist/ui/usd/export/index.d.ts.map +1 -0
  940. package/dist/ui/usd/export/openapi.d.ts +75 -0
  941. package/dist/ui/usd/export/openapi.d.ts.map +1 -0
  942. package/dist/ui/usd/index.d.ts +58 -0
  943. package/dist/ui/usd/index.d.ts.map +1 -0
  944. package/dist/ui/usd/parser/index.d.ts +93 -0
  945. package/dist/ui/usd/parser/index.d.ts.map +1 -0
  946. package/dist/ui/usd/parser/json.d.ts +34 -0
  947. package/dist/ui/usd/parser/json.d.ts.map +1 -0
  948. package/dist/ui/usd/parser/normalize.d.ts +20 -0
  949. package/dist/ui/usd/parser/normalize.d.ts.map +1 -0
  950. package/dist/ui/usd/parser/yaml.d.ts +41 -0
  951. package/dist/ui/usd/parser/yaml.d.ts.map +1 -0
  952. package/dist/ui/usd/spec/defaults.d.ts +121 -0
  953. package/dist/ui/usd/spec/defaults.d.ts.map +1 -0
  954. package/dist/ui/usd/spec/types.d.ts +704 -0
  955. package/dist/ui/usd/spec/types.d.ts.map +1 -0
  956. package/dist/ui/usd/utils/index.d.ts +6 -0
  957. package/dist/ui/usd/utils/index.d.ts.map +1 -0
  958. package/dist/ui/usd/utils/merge.d.ts +29 -0
  959. package/dist/ui/usd/utils/merge.d.ts.map +1 -0
  960. package/dist/ui/usd/utils/refs.d.ts +46 -0
  961. package/dist/ui/usd/utils/refs.d.ts.map +1 -0
  962. package/dist/ui/usd/validator/errors.d.ts +66 -0
  963. package/dist/ui/usd/validator/errors.d.ts.map +1 -0
  964. package/dist/ui/usd/validator/index.d.ts +68 -0
  965. package/dist/ui/usd/validator/index.d.ts.map +1 -0
  966. package/dist/ui/usd/validator/schema.d.ts +905 -0
  967. package/dist/ui/usd/validator/schema.d.ts.map +1 -0
  968. package/dist/ui/usd/validator/semantic.d.ts +15 -0
  969. package/dist/ui/usd/validator/semantic.d.ts.map +1 -0
  970. package/dist/ui/utils/id/alphabets.d.ts +68 -0
  971. package/dist/ui/utils/id/alphabets.d.ts.map +1 -0
  972. package/dist/ui/utils/id/entropy.d.ts +45 -0
  973. package/dist/ui/utils/id/entropy.d.ts.map +1 -0
  974. package/dist/ui/utils/id/index.d.ts +15 -0
  975. package/dist/ui/utils/id/index.d.ts.map +1 -0
  976. package/dist/ui/utils/id/sid.d.ts +86 -0
  977. package/dist/ui/utils/id/sid.d.ts.map +1 -0
  978. package/dist/ui/validation/adapters/ajv.d.ts +59 -0
  979. package/dist/ui/validation/adapters/ajv.d.ts.map +1 -0
  980. package/dist/ui/validation/adapters/fastest.d.ts +52 -0
  981. package/dist/ui/validation/adapters/fastest.d.ts.map +1 -0
  982. package/dist/ui/validation/adapters/index.d.ts +19 -0
  983. package/dist/ui/validation/adapters/index.d.ts.map +1 -0
  984. package/dist/ui/validation/adapters/joi.d.ts +51 -0
  985. package/dist/ui/validation/adapters/joi.d.ts.map +1 -0
  986. package/dist/ui/validation/adapters/yup.d.ts +53 -0
  987. package/dist/ui/validation/adapters/yup.d.ts.map +1 -0
  988. package/dist/ui/validation/adapters/zod.d.ts +52 -0
  989. package/dist/ui/validation/adapters/zod.d.ts.map +1 -0
  990. package/dist/ui/validation/index.d.ts +26 -0
  991. package/dist/ui/validation/index.d.ts.map +1 -0
  992. package/dist/ui/validation/schema.d.ts +150 -0
  993. package/dist/ui/validation/schema.d.ts.map +1 -0
  994. package/dist/ui/validation/types.d.ts +72 -0
  995. package/dist/ui/validation/types.d.ts.map +1 -0
  996. package/dist/usd/builder/document.d.ts +190 -0
  997. package/dist/usd/builder/document.d.ts.map +1 -0
  998. package/dist/usd/builder/document.js +418 -0
  999. package/dist/usd/builder/document.js.map +1 -0
  1000. package/dist/usd/builder/grpc.d.ts +119 -0
  1001. package/dist/usd/builder/grpc.d.ts.map +1 -0
  1002. package/dist/usd/builder/grpc.js +220 -0
  1003. package/dist/usd/builder/grpc.js.map +1 -0
  1004. package/dist/usd/builder/http.d.ts +131 -0
  1005. package/dist/usd/builder/http.d.ts.map +1 -0
  1006. package/dist/usd/builder/http.js +248 -0
  1007. package/dist/usd/builder/http.js.map +1 -0
  1008. package/dist/usd/builder/index.d.ts +15 -0
  1009. package/dist/usd/builder/index.d.ts.map +1 -0
  1010. package/dist/usd/builder/index.js +18 -0
  1011. package/dist/usd/builder/index.js.map +1 -0
  1012. package/dist/usd/builder/jsonrpc.d.ts +96 -0
  1013. package/dist/usd/builder/jsonrpc.d.ts.map +1 -0
  1014. package/dist/usd/builder/jsonrpc.js +167 -0
  1015. package/dist/usd/builder/jsonrpc.js.map +1 -0
  1016. package/dist/usd/builder/schema.d.ts +143 -0
  1017. package/dist/usd/builder/schema.d.ts.map +1 -0
  1018. package/dist/usd/builder/schema.js +171 -0
  1019. package/dist/usd/builder/schema.js.map +1 -0
  1020. package/dist/usd/builder/streams.d.ts +71 -0
  1021. package/dist/usd/builder/streams.d.ts.map +1 -0
  1022. package/dist/usd/builder/streams.js +146 -0
  1023. package/dist/usd/builder/streams.js.map +1 -0
  1024. package/dist/usd/builder/tcp.d.ts +61 -0
  1025. package/dist/usd/builder/tcp.d.ts.map +1 -0
  1026. package/dist/usd/builder/tcp.js +150 -0
  1027. package/dist/usd/builder/tcp.js.map +1 -0
  1028. package/dist/usd/builder/udp.d.ts +64 -0
  1029. package/dist/usd/builder/udp.d.ts.map +1 -0
  1030. package/dist/usd/builder/udp.js +166 -0
  1031. package/dist/usd/builder/udp.js.map +1 -0
  1032. package/dist/usd/builder/websocket.d.ts +131 -0
  1033. package/dist/usd/builder/websocket.d.ts.map +1 -0
  1034. package/dist/usd/builder/websocket.js +218 -0
  1035. package/dist/usd/builder/websocket.js.map +1 -0
  1036. package/dist/usd/export/index.d.ts +8 -0
  1037. package/dist/usd/export/index.d.ts.map +1 -0
  1038. package/dist/usd/export/index.js +10 -0
  1039. package/dist/usd/export/index.js.map +1 -0
  1040. package/dist/usd/export/openapi.d.ts +75 -0
  1041. package/dist/usd/export/openapi.d.ts.map +1 -0
  1042. package/dist/usd/export/openapi.js +296 -0
  1043. package/dist/usd/export/openapi.js.map +1 -0
  1044. package/dist/usd/index.d.ts +58 -0
  1045. package/dist/usd/index.d.ts.map +1 -0
  1046. package/dist/usd/index.js +61 -0
  1047. package/dist/usd/index.js.map +1 -0
  1048. package/dist/usd/parser/index.d.ts +93 -0
  1049. package/dist/usd/parser/index.d.ts.map +1 -0
  1050. package/dist/usd/parser/index.js +137 -0
  1051. package/dist/usd/parser/index.js.map +1 -0
  1052. package/dist/usd/parser/json.d.ts +34 -0
  1053. package/dist/usd/parser/json.d.ts.map +1 -0
  1054. package/dist/usd/parser/json.js +68 -0
  1055. package/dist/usd/parser/json.js.map +1 -0
  1056. package/dist/usd/parser/normalize.d.ts +20 -0
  1057. package/dist/usd/parser/normalize.d.ts.map +1 -0
  1058. package/dist/usd/parser/normalize.js +271 -0
  1059. package/dist/usd/parser/normalize.js.map +1 -0
  1060. package/dist/usd/parser/yaml.d.ts +41 -0
  1061. package/dist/usd/parser/yaml.d.ts.map +1 -0
  1062. package/dist/usd/parser/yaml.js +66 -0
  1063. package/dist/usd/parser/yaml.js.map +1 -0
  1064. package/dist/usd/spec/defaults.d.ts +121 -0
  1065. package/dist/usd/spec/defaults.d.ts.map +1 -0
  1066. package/dist/usd/spec/defaults.js +204 -0
  1067. package/dist/usd/spec/defaults.js.map +1 -0
  1068. package/dist/usd/spec/index.d.ts +6 -0
  1069. package/dist/usd/spec/index.d.ts.map +1 -0
  1070. package/dist/usd/spec/index.js +6 -0
  1071. package/dist/usd/spec/index.js.map +1 -0
  1072. package/dist/usd/spec/types.d.ts +698 -0
  1073. package/dist/usd/spec/types.d.ts.map +1 -0
  1074. package/dist/usd/spec/types.js +33 -0
  1075. package/dist/usd/spec/types.js.map +1 -0
  1076. package/dist/usd/utils/index.d.ts +6 -0
  1077. package/dist/usd/utils/index.d.ts.map +1 -0
  1078. package/dist/usd/utils/index.js +6 -0
  1079. package/dist/usd/utils/index.js.map +1 -0
  1080. package/dist/usd/utils/merge.d.ts +29 -0
  1081. package/dist/usd/utils/merge.d.ts.map +1 -0
  1082. package/dist/usd/utils/merge.js +92 -0
  1083. package/dist/usd/utils/merge.js.map +1 -0
  1084. package/dist/usd/utils/refs.d.ts +46 -0
  1085. package/dist/usd/utils/refs.d.ts.map +1 -0
  1086. package/dist/usd/utils/refs.js +102 -0
  1087. package/dist/usd/utils/refs.js.map +1 -0
  1088. package/dist/usd/validator/errors.d.ts +66 -0
  1089. package/dist/usd/validator/errors.d.ts.map +1 -0
  1090. package/dist/usd/validator/errors.js +132 -0
  1091. package/dist/usd/validator/errors.js.map +1 -0
  1092. package/dist/usd/validator/index.d.ts +68 -0
  1093. package/dist/usd/validator/index.d.ts.map +1 -0
  1094. package/dist/usd/validator/index.js +92 -0
  1095. package/dist/usd/validator/index.js.map +1 -0
  1096. package/dist/usd/validator/schema.d.ts +905 -0
  1097. package/dist/usd/validator/schema.d.ts.map +1 -0
  1098. package/dist/usd/validator/schema.js +539 -0
  1099. package/dist/usd/validator/schema.js.map +1 -0
  1100. package/dist/usd/validator/semantic.d.ts +15 -0
  1101. package/dist/usd/validator/semantic.d.ts.map +1 -0
  1102. package/dist/usd/validator/semantic.js +452 -0
  1103. package/dist/usd/validator/semantic.js.map +1 -0
  1104. package/dist/utils/content-codecs.d.ts +14 -0
  1105. package/dist/utils/content-codecs.d.ts.map +1 -0
  1106. package/dist/utils/content-codecs.js +201 -0
  1107. package/dist/utils/content-codecs.js.map +1 -0
  1108. package/dist/utils/header-metadata.d.ts +6 -0
  1109. package/dist/utils/header-metadata.d.ts.map +1 -0
  1110. package/dist/utils/header-metadata.js +78 -0
  1111. package/dist/utils/header-metadata.js.map +1 -0
  1112. package/dist/utils/id/alphabets.d.ts +68 -0
  1113. package/dist/utils/id/alphabets.d.ts.map +1 -0
  1114. package/dist/utils/id/alphabets.js +90 -0
  1115. package/dist/utils/id/alphabets.js.map +1 -0
  1116. package/dist/utils/id/entropy.d.ts +45 -0
  1117. package/dist/utils/id/entropy.d.ts.map +1 -0
  1118. package/dist/utils/id/entropy.js +154 -0
  1119. package/dist/utils/id/entropy.js.map +1 -0
  1120. package/dist/utils/id/index.d.ts +15 -0
  1121. package/dist/utils/id/index.d.ts.map +1 -0
  1122. package/dist/utils/id/index.js +13 -0
  1123. package/dist/utils/id/index.js.map +1 -0
  1124. package/dist/utils/id/sid.d.ts +86 -0
  1125. package/dist/utils/id/sid.d.ts.map +1 -0
  1126. package/dist/utils/id/sid.js +109 -0
  1127. package/dist/utils/id/sid.js.map +1 -0
  1128. package/dist/utils/index.d.ts +7 -0
  1129. package/dist/utils/index.d.ts.map +1 -0
  1130. package/dist/utils/index.js +8 -0
  1131. package/dist/utils/index.js.map +1 -0
  1132. package/dist/utils/logger.d.ts +15 -0
  1133. package/dist/utils/logger.d.ts.map +1 -0
  1134. package/dist/utils/logger.js +36 -0
  1135. package/dist/utils/logger.js.map +1 -0
  1136. package/dist/validation/adapters/ajv.d.ts +59 -0
  1137. package/dist/validation/adapters/ajv.d.ts.map +1 -0
  1138. package/dist/validation/adapters/ajv.js +136 -0
  1139. package/dist/validation/adapters/ajv.js.map +1 -0
  1140. package/dist/validation/adapters/fastest.d.ts +52 -0
  1141. package/dist/validation/adapters/fastest.d.ts.map +1 -0
  1142. package/dist/validation/adapters/fastest.js +215 -0
  1143. package/dist/validation/adapters/fastest.js.map +1 -0
  1144. package/dist/validation/adapters/index.d.ts +19 -0
  1145. package/dist/validation/adapters/index.d.ts.map +1 -0
  1146. package/dist/validation/adapters/index.js +19 -0
  1147. package/dist/validation/adapters/index.js.map +1 -0
  1148. package/dist/validation/adapters/joi.d.ts +51 -0
  1149. package/dist/validation/adapters/joi.d.ts.map +1 -0
  1150. package/dist/validation/adapters/joi.js +267 -0
  1151. package/dist/validation/adapters/joi.js.map +1 -0
  1152. package/dist/validation/adapters/yup.d.ts +53 -0
  1153. package/dist/validation/adapters/yup.d.ts.map +1 -0
  1154. package/dist/validation/adapters/yup.js +267 -0
  1155. package/dist/validation/adapters/yup.js.map +1 -0
  1156. package/dist/validation/adapters/zod.d.ts +52 -0
  1157. package/dist/validation/adapters/zod.d.ts.map +1 -0
  1158. package/dist/validation/adapters/zod.js +107 -0
  1159. package/dist/validation/adapters/zod.js.map +1 -0
  1160. package/dist/validation/index.d.ts +26 -0
  1161. package/dist/validation/index.d.ts.map +1 -0
  1162. package/dist/validation/index.js +48 -0
  1163. package/dist/validation/index.js.map +1 -0
  1164. package/dist/validation/multi-validator.int.test.d.ts +7 -0
  1165. package/dist/validation/multi-validator.int.test.d.ts.map +1 -0
  1166. package/dist/validation/multi-validator.int.test.js +808 -0
  1167. package/dist/validation/multi-validator.int.test.js.map +1 -0
  1168. package/dist/validation/schema.d.ts +150 -0
  1169. package/dist/validation/schema.d.ts.map +1 -0
  1170. package/dist/validation/schema.int.test.d.ts +5 -0
  1171. package/dist/validation/schema.int.test.d.ts.map +1 -0
  1172. package/dist/validation/schema.int.test.js +340 -0
  1173. package/dist/validation/schema.int.test.js.map +1 -0
  1174. package/dist/validation/schema.js +271 -0
  1175. package/dist/validation/schema.js.map +1 -0
  1176. package/dist/validation/types.d.ts +72 -0
  1177. package/dist/validation/types.d.ts.map +1 -0
  1178. package/dist/validation/types.js +14 -0
  1179. package/dist/validation/types.js.map +1 -0
  1180. package/package.json +222 -0
@@ -0,0 +1,1682 @@
1
+ /**
2
+ * Server Builder Implementation
3
+ *
4
+ * Unified server builder with fluent API for multi-protocol support.
5
+ */
6
+ import { createRegistry } from '../core/registry.js';
7
+ import { createRouter } from '../core/router.js';
8
+ import { createHttpAdapter } from '../adapters/http.js';
9
+ import { createWebSocketAdapter } from '../adapters/websocket.js';
10
+ import { createTcpAdapter } from '../adapters/tcp.js';
11
+ import { createJsonRpcAdapter, createJsonRpcMiddleware } from '../adapters/jsonrpc.js';
12
+ import { createGrpcAdapter } from '../adapters/grpc.js';
13
+ import { createGraphQLAdapter, createGraphQLMiddleware } from '../graphql/index.js';
14
+ import { getRouterModuleDefinition } from './router-module.js';
15
+ import { createSchemaRegistry, createValidationInterceptor } from '../validation/index.js';
16
+ import { createMetricRegistry, createMetricsInterceptor, startProcessMetricsCollection, } from '../metrics/index.js';
17
+ import { createTracer, createTracingInterceptor } from '../tracing/index.js';
18
+ import { createUSDHandlers } from '../docs/index.js';
19
+ import { createDiscoveryWatcher, createRouteInterceptors, isDevelopment, generateResourceRoutes, } from './fs-routes/index.js';
20
+ import { createLogger } from '../utils/logger.js';
21
+ import { createProcedureBuilder, createStreamBuilder, createEventBuilder, createGroupBuilder, joinHandlerName, } from './handler-builders.js';
22
+ import { createResourceBuilder } from './resource-builder.js';
23
+ import { registerDiscoveredHandlers, resolveHooksForProcedure } from './discovery-utils.js';
24
+ import { buildChannelOptions, joinBasePath } from './channel-utils.js';
25
+ import { createRestMiddleware, createHttpOverrideMiddleware, logRestMiddlewareRegistered, createDocsRouteMiddleware, } from './rest-middleware.js';
26
+ import { buildProtocolConfig } from './protocol-config.js';
27
+ const logger = createLogger('server');
28
+ /**
29
+ * Check if a value is an async iterable
30
+ */
31
+ function isAsyncIterable(value) {
32
+ return value !== null && typeof value === 'object' && Symbol.asyncIterator in value;
33
+ }
34
+ /**
35
+ * Create a unified Raffel server
36
+ */
37
+ export function createServer(options) {
38
+ const { port, host = '0.0.0.0', basePath = '/', cors = true, eventDelivery, websocket, jsonrpc, tcp, graphql, middleware, http: httpOptions, discovery, hotReload = isDevelopment(), providers: initialProviders, } = options;
39
+ // Core components
40
+ const registry = createRegistry();
41
+ const router = createRouter(registry, { eventDelivery });
42
+ const schemaRegistry = createSchemaRegistry();
43
+ // Discovery watcher for file-system handlers
44
+ let discoveryWatcher = null;
45
+ // Create discovery watcher if configured
46
+ if (discovery) {
47
+ discoveryWatcher = createDiscoveryWatcher({
48
+ discovery: discovery === true
49
+ ? { http: true, channels: true, rpc: true, streams: true, rest: true, resources: true, tcp: true, udp: true }
50
+ : discovery,
51
+ hotReload,
52
+ onLoad: (stats) => {
53
+ logger.info({
54
+ http: stats.http,
55
+ rpc: stats.rpc,
56
+ streams: stats.streams,
57
+ channels: stats.channels,
58
+ rest: stats.rest,
59
+ resources: stats.resources,
60
+ tcp: stats.tcp,
61
+ udp: stats.udp,
62
+ duration: stats.duration,
63
+ }, `Discovered ${stats.total} handlers`);
64
+ },
65
+ onReload: async (result) => {
66
+ applyDiscoveryResult(result);
67
+ logger.info({ total: result.stats.total }, 'Handlers hot-reloaded');
68
+ },
69
+ onError: (err) => {
70
+ logger.error({ err }, 'Discovery loading error');
71
+ },
72
+ });
73
+ }
74
+ // Protocol configuration (from options)
75
+ const protocols = buildProtocolConfig({ websocket, jsonrpc, tcp, graphql });
76
+ // Global interceptors (from options + added via .use())
77
+ const globalInterceptors = middleware ? [...middleware] : [];
78
+ // Namespace-level interceptors (for shared middleware per protocol)
79
+ // These are persistent across getter calls, enabling shared middleware chains
80
+ const httpInterceptors = [];
81
+ const wsInterceptors = [];
82
+ const streamInterceptors = [];
83
+ const rpcInterceptors = [];
84
+ const tcpInterceptors = [];
85
+ const udpInterceptors = [];
86
+ // Global hooks configuration (added via .hooks())
87
+ let globalHooks = {};
88
+ // Create hooks resolver that uses current globalHooks state
89
+ const createHooksResolver = () => (name) => resolveHooksForProcedure(name, globalHooks);
90
+ // Active adapters
91
+ let httpServer = null;
92
+ let wsAdapter = null;
93
+ let jsonRpcAdapter = null;
94
+ let tcpAdapter = null;
95
+ let grpcAdapter = null;
96
+ let graphqlAdapter = null;
97
+ let graphqlMiddleware = null;
98
+ let graphqlSubscriptionServer = null;
99
+ // Metrics
100
+ let metricsConfig = null;
101
+ let metricsRegistry = null;
102
+ let processMetricsCleanup = null;
103
+ // Tracing
104
+ let tracingConfig = null;
105
+ let tracerInstance = null;
106
+ // USD Documentation
107
+ let usdDocsConfig = null;
108
+ let usdDocsHandlers = null;
109
+ // State
110
+ let running = false;
111
+ let addresses = null;
112
+ // Provider definitions (added via .provide() or options.providers)
113
+ const providerDefinitions = new Map();
114
+ const resolvedProviders = {};
115
+ // Initialize provider definitions from options
116
+ if (initialProviders) {
117
+ for (const [name, config] of Object.entries(initialProviders)) {
118
+ if (typeof config === 'function') {
119
+ providerDefinitions.set(name, { factory: config });
120
+ }
121
+ else {
122
+ providerDefinitions.set(name, config);
123
+ }
124
+ }
125
+ }
126
+ // Custom protocol handlers (added via .addTcpHandler()/.addUdpHandler())
127
+ const tcpHandlers = [];
128
+ const udpHandlers = [];
129
+ const tcpServers = [];
130
+ const udpServers = [];
131
+ // Channel definitions discovered from filesystem or added manually
132
+ const channelRegistry = new Map();
133
+ // REST resources for HTTP routing
134
+ const restResourceRegistry = [];
135
+ function registerChannel(channel) {
136
+ channelRegistry.set(channel.name, channel);
137
+ }
138
+ function registerRestResource(resource) {
139
+ // Store in registry for HTTP middleware
140
+ restResourceRegistry.push(resource);
141
+ for (const route of resource.routes) {
142
+ // HEAD and OPTIONS have both collection and item routes - differentiate them
143
+ const suffix = (route.operation === 'head' || route.operation === 'options')
144
+ ? (route.isCollection ? ':collection' : ':item')
145
+ : '';
146
+ const name = `${resource.name}.${route.operation}${suffix}`;
147
+ if (route.inputSchema || route.outputSchema) {
148
+ const schema = {};
149
+ if (route.inputSchema)
150
+ schema.input = route.inputSchema;
151
+ if (route.outputSchema)
152
+ schema.output = route.outputSchema;
153
+ schemaRegistry.register(name, schema);
154
+ }
155
+ registry.procedure(name, route.handler, {
156
+ interceptors: globalInterceptors.length > 0 ? [...globalInterceptors] : undefined,
157
+ });
158
+ }
159
+ logger.debug({ name: resource.name, routes: resource.routes.length }, 'Added REST resource');
160
+ }
161
+ function registerResource(resource) {
162
+ const routes = generateResourceRoutes([resource]);
163
+ for (const route of routes) {
164
+ const name = `${resource.name}.${route.operation}`;
165
+ registry.procedure(name, route.handler, {
166
+ interceptors: globalInterceptors.length > 0 ? [...globalInterceptors] : undefined,
167
+ });
168
+ }
169
+ logger.debug({ name: resource.name, operations: routes.length }, 'Added resource');
170
+ }
171
+ function registerTcpHandler(handler) {
172
+ tcpHandlers.push(handler);
173
+ logger.debug({ name: handler.name, port: handler.config.port }, 'Added TCP handler');
174
+ }
175
+ function registerUdpHandler(handler) {
176
+ udpHandlers.push(handler);
177
+ logger.debug({ name: handler.name, port: handler.config.port }, 'Added UDP handler');
178
+ }
179
+ function applyDiscoveryResult(result) {
180
+ registerDiscoveredHandlers(result, registry, schemaRegistry, globalInterceptors);
181
+ for (const channel of result.channels) {
182
+ registerChannel(channel);
183
+ }
184
+ for (const resource of result.restResources) {
185
+ registerRestResource(resource);
186
+ }
187
+ for (const resource of result.resources) {
188
+ registerResource(resource);
189
+ }
190
+ for (const handler of result.tcpHandlers) {
191
+ registerTcpHandler(handler);
192
+ }
193
+ for (const handler of result.udpHandlers) {
194
+ registerUdpHandler(handler);
195
+ }
196
+ }
197
+ /**
198
+ * Register an HTTP route (Hono-style).
199
+ * Creates a procedure with the method and path as name (e.g., `get:/users/:id`).
200
+ *
201
+ * Interceptor chain order:
202
+ * 1. Global interceptors (server.use())
203
+ * 2. HTTP namespace interceptors (server.http.use())
204
+ * 3. Route-specific interceptors (options.use)
205
+ * 4. Validation interceptor (prepended if schema provided)
206
+ */
207
+ function registerHttpRoute(method, path, optionsOrHandler, maybeHandler) {
208
+ // Parse overloaded arguments
209
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null;
210
+ const options = isOptionsObject ? optionsOrHandler : {};
211
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
212
+ // Generate procedure name from method and path (e.g., "get:/users/:id")
213
+ const name = `${method.toLowerCase()}:${path}`;
214
+ // Build interceptors: global → namespace → route-specific
215
+ const interceptors = [...globalInterceptors, ...httpInterceptors, ...(options.use ?? [])];
216
+ // Register schema if provided
217
+ if (options.input || options.output) {
218
+ const schema = {};
219
+ if (options.input)
220
+ schema.input = options.input;
221
+ if (options.output)
222
+ schema.output = options.output;
223
+ schemaRegistry.register(name, schema);
224
+ interceptors.unshift(createValidationInterceptor(schema));
225
+ }
226
+ // Register as a procedure with HTTP metadata
227
+ registry.procedure(name, handler, {
228
+ summary: options.summary,
229
+ description: options.description,
230
+ tags: options.tags,
231
+ httpPath: path,
232
+ httpMethod: method,
233
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
234
+ });
235
+ logger.debug({ name, path, method }, 'Added HTTP route');
236
+ return server;
237
+ }
238
+ const server = {
239
+ // === Protocol Configuration ===
240
+ enableWebSocket(path = '/') {
241
+ protocols.websocket = {
242
+ enabled: true,
243
+ options: { path },
244
+ shared: true,
245
+ };
246
+ return server;
247
+ },
248
+ websocket(opts) {
249
+ protocols.websocket = {
250
+ enabled: true,
251
+ options: opts,
252
+ shared: opts.port === undefined,
253
+ };
254
+ return server;
255
+ },
256
+ enableJsonRpc(path = '/rpc') {
257
+ protocols.jsonrpc = {
258
+ enabled: true,
259
+ options: { path },
260
+ shared: true,
261
+ };
262
+ return server;
263
+ },
264
+ jsonrpc(opts) {
265
+ protocols.jsonrpc = {
266
+ enabled: true,
267
+ options: opts,
268
+ shared: opts.port === undefined,
269
+ };
270
+ return server;
271
+ },
272
+ tcp(opts) {
273
+ protocols.tcp = {
274
+ enabled: true,
275
+ options: opts,
276
+ };
277
+ return server;
278
+ },
279
+ grpc(opts) {
280
+ protocols.grpc = {
281
+ enabled: true,
282
+ options: opts,
283
+ };
284
+ return server;
285
+ },
286
+ protocols(config) {
287
+ // WebSocket
288
+ if (config.websocket !== undefined && config.websocket !== false) {
289
+ if (config.websocket === true) {
290
+ server.enableWebSocket('/ws');
291
+ }
292
+ else if (typeof config.websocket === 'string') {
293
+ server.enableWebSocket(config.websocket);
294
+ }
295
+ else {
296
+ server.websocket(config.websocket);
297
+ }
298
+ }
299
+ // JSON-RPC
300
+ if (config.jsonrpc !== undefined && config.jsonrpc !== false) {
301
+ if (config.jsonrpc === true) {
302
+ server.enableJsonRpc('/rpc');
303
+ }
304
+ else if (typeof config.jsonrpc === 'string') {
305
+ server.enableJsonRpc(config.jsonrpc);
306
+ }
307
+ else {
308
+ server.jsonrpc(config.jsonrpc);
309
+ }
310
+ }
311
+ // Streams (SSE)
312
+ if (config.streams !== undefined && config.streams !== false) {
313
+ // Streams are enabled automatically when stream handlers are registered
314
+ // This is a marker for documentation and configuration
315
+ logger.debug({ streams: config.streams }, 'Streams protocol enabled');
316
+ }
317
+ // GraphQL
318
+ if (config.graphql !== undefined && config.graphql !== false) {
319
+ if (config.graphql === true) {
320
+ server.enableGraphQL('/graphql');
321
+ }
322
+ else if (typeof config.graphql === 'string') {
323
+ server.enableGraphQL(config.graphql);
324
+ }
325
+ else {
326
+ server.configureGraphQL(config.graphql);
327
+ }
328
+ }
329
+ // TCP (requires full options)
330
+ if (config.tcp) {
331
+ server.tcp(config.tcp);
332
+ }
333
+ // gRPC (requires full options)
334
+ if (config.grpc) {
335
+ server.grpc(config.grpc);
336
+ }
337
+ logger.info({ protocols: Object.keys(config).filter((k) => config[k]) }, 'Protocols configured');
338
+ return server;
339
+ },
340
+ enableGraphQL(path = '/graphql') {
341
+ protocols.graphql = {
342
+ enabled: true,
343
+ options: { path },
344
+ shared: true,
345
+ };
346
+ return server;
347
+ },
348
+ configureGraphQL(opts) {
349
+ protocols.graphql = {
350
+ enabled: true,
351
+ options: opts,
352
+ shared: opts.port === undefined,
353
+ };
354
+ return server;
355
+ },
356
+ // === Metrics ===
357
+ enableMetrics(config = {}) {
358
+ metricsConfig = {
359
+ enabled: config.enabled ?? true,
360
+ endpoint: config.endpoint ?? '/metrics',
361
+ defaultLabels: config.defaultLabels,
362
+ collectRequestMetrics: config.collectRequestMetrics ?? true,
363
+ collectProcessMetrics: config.collectProcessMetrics ?? false,
364
+ };
365
+ // Create registry immediately so it's available for custom metrics
366
+ metricsRegistry = createMetricRegistry();
367
+ if (metricsConfig.defaultLabels) {
368
+ metricsRegistry.setDefaultLabels(metricsConfig.defaultLabels);
369
+ }
370
+ return server;
371
+ },
372
+ // === Tracing ===
373
+ enableTracing(config = {}) {
374
+ tracingConfig = {
375
+ enabled: config.enabled ?? true,
376
+ serviceName: config.serviceName ?? 'raffel',
377
+ sampleRate: config.sampleRate ?? 1.0,
378
+ rateLimit: config.rateLimit ?? 0,
379
+ exporters: config.exporters ?? [],
380
+ batchSize: config.batchSize ?? 100,
381
+ batchTimeout: config.batchTimeout ?? 5000,
382
+ defaultAttributes: config.defaultAttributes ?? {},
383
+ };
384
+ // Create tracer immediately so it's available
385
+ tracerInstance = createTracer(tracingConfig);
386
+ return server;
387
+ },
388
+ // === USD Documentation ===
389
+ enableUSD(config = {}) {
390
+ usdDocsConfig = {
391
+ basePath: config.basePath ?? '/docs',
392
+ info: config.info,
393
+ servers: config.servers,
394
+ protocols: config.protocols,
395
+ securitySchemes: config.securitySchemes,
396
+ defaultSecurity: config.defaultSecurity,
397
+ tags: config.tags,
398
+ externalDocs: config.externalDocs,
399
+ ui: config.ui,
400
+ includeErrorSchemas: config.includeErrorSchemas,
401
+ includeStreamEventSchemas: config.includeStreamEventSchemas,
402
+ jsonrpc: config.jsonrpc,
403
+ grpc: config.grpc,
404
+ };
405
+ logger.info({ basePath: usdDocsConfig.basePath, protocols: usdDocsConfig.protocols ?? 'auto' }, 'USD Documentation enabled');
406
+ return server;
407
+ },
408
+ // === Providers ===
409
+ provide(name, factory, options) {
410
+ providerDefinitions.set(name, {
411
+ factory: factory,
412
+ onShutdown: options?.onShutdown,
413
+ });
414
+ return server;
415
+ },
416
+ // === Global Middleware ===
417
+ use(interceptor) {
418
+ globalInterceptors.push(interceptor);
419
+ return server;
420
+ },
421
+ // === Global Hooks ===
422
+ hooks(config) {
423
+ // Merge with existing hooks
424
+ if (config.before) {
425
+ globalHooks.before = { ...globalHooks.before, ...config.before };
426
+ }
427
+ if (config.after) {
428
+ globalHooks.after = { ...globalHooks.after, ...config.after };
429
+ }
430
+ if (config.error) {
431
+ globalHooks.error = { ...globalHooks.error, ...config.error };
432
+ }
433
+ return server;
434
+ },
435
+ // === Handler Registration ===
436
+ procedure(nameOrHandler, handler, opts) {
437
+ // Direct registration (backwards compatible)
438
+ if (typeof handler === 'function') {
439
+ // Include global interceptors for direct registration
440
+ const interceptors = [...globalInterceptors, ...(opts?.interceptors ?? [])];
441
+ registry.procedure(nameOrHandler, handler, {
442
+ ...opts,
443
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
444
+ });
445
+ return;
446
+ }
447
+ // Fluent builder with hooks resolver
448
+ return createProcedureBuilder(registry, schemaRegistry, nameOrHandler, [...globalInterceptors], createHooksResolver());
449
+ },
450
+ stream(name) {
451
+ return createStreamBuilder(registry, schemaRegistry, name, [...globalInterceptors]);
452
+ },
453
+ event(name) {
454
+ return createEventBuilder(registry, schemaRegistry, name, [...globalInterceptors]);
455
+ },
456
+ resource(name, outputSchema, basePath) {
457
+ return createResourceBuilder({
458
+ registry,
459
+ schemaRegistry,
460
+ name,
461
+ basePath: basePath ?? `/${name}`,
462
+ outputSchema,
463
+ inheritedInterceptors: [...globalInterceptors],
464
+ tags: [name],
465
+ });
466
+ },
467
+ // === HTTP Routes (Hono-style) ===
468
+ get(path, optionsOrHandler, maybeHandler) {
469
+ return registerHttpRoute('GET', path, optionsOrHandler, maybeHandler);
470
+ },
471
+ post(path, optionsOrHandler, maybeHandler) {
472
+ return registerHttpRoute('POST', path, optionsOrHandler, maybeHandler);
473
+ },
474
+ put(path, optionsOrHandler, maybeHandler) {
475
+ return registerHttpRoute('PUT', path, optionsOrHandler, maybeHandler);
476
+ },
477
+ patch(path, optionsOrHandler, maybeHandler) {
478
+ return registerHttpRoute('PATCH', path, optionsOrHandler, maybeHandler);
479
+ },
480
+ delete(path, optionsOrHandler, maybeHandler) {
481
+ return registerHttpRoute('DELETE', path, optionsOrHandler, maybeHandler);
482
+ },
483
+ options(path, optionsOrHandler, maybeHandler) {
484
+ return registerHttpRoute('OPTIONS', path, optionsOrHandler, maybeHandler);
485
+ },
486
+ head(path, optionsOrHandler, maybeHandler) {
487
+ return registerHttpRoute('HEAD', path, optionsOrHandler, maybeHandler);
488
+ },
489
+ // === Declarative Registration ===
490
+ procedures(map) {
491
+ for (const [name, def] of Object.entries(map)) {
492
+ // Parse http config
493
+ let httpPath;
494
+ let httpMethod;
495
+ if (def.http) {
496
+ if (typeof def.http === 'string') {
497
+ httpPath = def.http;
498
+ httpMethod = 'POST'; // default
499
+ }
500
+ else if (Array.isArray(def.http)) {
501
+ ;
502
+ [httpMethod, httpPath] = def.http;
503
+ }
504
+ else {
505
+ httpPath = def.http.path;
506
+ httpMethod = def.http.method ?? 'POST';
507
+ }
508
+ }
509
+ // Build interceptors
510
+ const interceptors = [...globalInterceptors, ...(def.use ?? [])];
511
+ // Register schema
512
+ if (def.input || def.output) {
513
+ const schema = {};
514
+ if (def.input)
515
+ schema.input = def.input;
516
+ if (def.output)
517
+ schema.output = def.output;
518
+ schemaRegistry.register(name, schema);
519
+ interceptors.unshift(createValidationInterceptor(schema));
520
+ }
521
+ registry.procedure(name, def.handler, {
522
+ summary: def.summary,
523
+ description: def.description,
524
+ tags: def.tags,
525
+ httpPath,
526
+ httpMethod,
527
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
528
+ });
529
+ logger.debug({ name, httpPath, httpMethod }, 'Added procedure from map');
530
+ }
531
+ return server;
532
+ },
533
+ resources(map) {
534
+ for (const [name, def] of Object.entries(map)) {
535
+ const basePath = def.basePath ?? `/${name}`;
536
+ const tags = def.tags ?? [name];
537
+ const baseInterceptors = [...globalInterceptors, ...(def.use ?? [])];
538
+ // Helper to register an operation
539
+ const registerOp = (opName, handler, method, path, inputSchema) => {
540
+ const procedureName = `${name}.${opName}`;
541
+ const interceptors = [...baseInterceptors];
542
+ if (inputSchema || def.schema) {
543
+ const schema = {};
544
+ if (inputSchema)
545
+ schema.input = inputSchema;
546
+ if (def.schema)
547
+ schema.output = def.schema;
548
+ schemaRegistry.register(procedureName, schema);
549
+ if (inputSchema) {
550
+ interceptors.unshift(createValidationInterceptor({ input: inputSchema }));
551
+ }
552
+ }
553
+ registry.procedure(procedureName, handler, {
554
+ tags,
555
+ httpPath: path,
556
+ httpMethod: method,
557
+ summary: `${opName.charAt(0).toUpperCase() + opName.slice(1)} ${name}`,
558
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
559
+ });
560
+ };
561
+ // Register standard operations
562
+ if (def.list) {
563
+ const listDef = def.list;
564
+ if (typeof listDef === 'function') {
565
+ registerOp('list', listDef, 'GET', basePath, undefined);
566
+ }
567
+ else {
568
+ registerOp('list', listDef.handler, 'GET', basePath, listDef.input);
569
+ }
570
+ }
571
+ if (def.get) {
572
+ registerOp('get', async (input, ctx) => def.get(input.id, ctx), 'GET', `${basePath}/:id`);
573
+ }
574
+ if (def.create) {
575
+ const createDef = def.create;
576
+ if (typeof createDef === 'function') {
577
+ registerOp('create', createDef, 'POST', basePath, undefined);
578
+ }
579
+ else {
580
+ registerOp('create', createDef.handler, 'POST', basePath, createDef.input);
581
+ }
582
+ }
583
+ if (def.update) {
584
+ const updateDef = def.update;
585
+ if (typeof updateDef === 'function') {
586
+ const handler = async (input, ctx) => updateDef(input.id, input, ctx);
587
+ registerOp('update', handler, 'PUT', `${basePath}/:id`, undefined);
588
+ }
589
+ else {
590
+ const handler = async (input, ctx) => updateDef.handler(input.id, input, ctx);
591
+ registerOp('update', handler, 'PUT', `${basePath}/:id`, updateDef.input);
592
+ }
593
+ }
594
+ if (def.patch) {
595
+ const patchDef = def.patch;
596
+ if (typeof patchDef === 'function') {
597
+ const handler = async (input, ctx) => patchDef(input.id, input, ctx);
598
+ registerOp('patch', handler, 'PATCH', `${basePath}/:id`, undefined);
599
+ }
600
+ else {
601
+ const handler = async (input, ctx) => patchDef.handler(input.id, input, ctx);
602
+ registerOp('patch', handler, 'PATCH', `${basePath}/:id`, patchDef.input);
603
+ }
604
+ }
605
+ if (def.delete) {
606
+ registerOp('delete', async (input, ctx) => def.delete(input.id, ctx), 'DELETE', `${basePath}/:id`);
607
+ }
608
+ // Register custom actions
609
+ if (def.actions) {
610
+ for (const [actionName, action] of Object.entries(def.actions)) {
611
+ registerOp(actionName, action.handler, 'POST', `${basePath}/${actionName}`, action.input);
612
+ }
613
+ }
614
+ // Register item actions
615
+ if (def.itemActions) {
616
+ for (const [actionName, action] of Object.entries(def.itemActions)) {
617
+ const isObj = typeof action === 'object' && 'handler' in action;
618
+ const handler = isObj
619
+ ? async (input, ctx) => action.handler(input.id, input, ctx)
620
+ : async (input, ctx) => action(input.id, ctx);
621
+ const inputSchema = isObj ? action.input : undefined;
622
+ registerOp(actionName, handler, 'POST', `${basePath}/:id/${actionName}`, inputSchema);
623
+ }
624
+ }
625
+ logger.debug({ name, basePath, operations: Object.keys(def).length }, 'Added resource from map');
626
+ }
627
+ return server;
628
+ },
629
+ // === Grouping ===
630
+ group(prefix) {
631
+ return createGroupBuilder(registry, schemaRegistry, prefix, [...globalInterceptors], createHooksResolver());
632
+ },
633
+ mount(prefix, module, options = {}) {
634
+ const definition = getRouterModuleDefinition(module);
635
+ const mountInterceptors = options.interceptors ?? [];
636
+ for (const route of definition.routes) {
637
+ const fullName = joinHandlerName(prefix, route.name);
638
+ const interceptors = [
639
+ ...(route.kind === 'procedure' && route.schema
640
+ ? [createValidationInterceptor(route.schema)]
641
+ : []),
642
+ ...globalInterceptors,
643
+ ...mountInterceptors,
644
+ ...route.moduleInterceptors,
645
+ ...route.interceptors,
646
+ ];
647
+ if (route.schema) {
648
+ schemaRegistry.register(fullName, route.schema);
649
+ }
650
+ if (route.kind === 'procedure') {
651
+ registry.procedure(fullName, route.handler, {
652
+ summary: route.summary,
653
+ description: route.description,
654
+ tags: route.tags,
655
+ graphql: route.graphql,
656
+ httpPath: route.httpPath,
657
+ httpMethod: route.httpMethod,
658
+ jsonrpc: route.jsonrpc,
659
+ grpc: route.grpc,
660
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
661
+ });
662
+ }
663
+ else if (route.kind === 'stream') {
664
+ registry.stream(fullName, route.handler, {
665
+ description: route.description,
666
+ direction: route.streamDirection,
667
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
668
+ });
669
+ }
670
+ else {
671
+ registry.event(fullName, route.handler, {
672
+ description: route.description,
673
+ delivery: route.delivery,
674
+ retryPolicy: route.retryPolicy,
675
+ deduplicationWindow: route.deduplicationWindow,
676
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
677
+ });
678
+ }
679
+ }
680
+ return server;
681
+ },
682
+ // === Programmatic Registration ===
683
+ addProcedure(input) {
684
+ // Normalize input (LoadedRoute has 'handler' directly, AddProcedureInput also has 'handler')
685
+ const name = input.name;
686
+ const handler = input.handler;
687
+ const inputSchema = input.inputSchema;
688
+ const outputSchema = input.outputSchema;
689
+ const summary = 'meta' in input ? input.meta?.summary : input.summary;
690
+ const description = 'meta' in input ? input.meta?.description : input.description;
691
+ const tags = 'meta' in input ? input.meta?.tags : input.tags;
692
+ const graphql = 'meta' in input ? input.meta?.graphql : input.graphql;
693
+ const httpPath = 'meta' in input ? input.meta?.httpPath : input.httpPath;
694
+ const httpMethod = 'meta' in input ? input.meta?.httpMethod : input.httpMethod;
695
+ const jsonrpc = 'meta' in input ? input.meta?.jsonrpc : input.jsonrpc;
696
+ const grpc = 'meta' in input ? input.meta?.grpc : input.grpc;
697
+ const routeInterceptors = 'middlewares' in input ? createRouteInterceptors(input) : [];
698
+ const inputInterceptors = 'interceptors' in input ? input.interceptors ?? [] : [];
699
+ const interceptors = [...globalInterceptors, ...routeInterceptors, ...inputInterceptors];
700
+ // Register schema if defined
701
+ if (inputSchema || outputSchema) {
702
+ const schema = {};
703
+ if (inputSchema)
704
+ schema.input = inputSchema;
705
+ if (outputSchema)
706
+ schema.output = outputSchema;
707
+ schemaRegistry.register(name, schema);
708
+ interceptors.unshift(createValidationInterceptor(schema));
709
+ }
710
+ registry.procedure(name, handler, {
711
+ summary,
712
+ description,
713
+ tags,
714
+ graphql,
715
+ httpPath,
716
+ httpMethod,
717
+ jsonrpc,
718
+ grpc,
719
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
720
+ });
721
+ logger.debug({ name }, 'Added procedure');
722
+ return server;
723
+ },
724
+ addStream(input) {
725
+ const name = input.name;
726
+ const handler = input.handler;
727
+ const inputSchema = input.inputSchema;
728
+ const outputSchema = input.outputSchema;
729
+ const description = 'meta' in input ? input.meta?.description : input.description;
730
+ const direction = 'meta' in input ? input.meta?.direction : input.direction;
731
+ const routeInterceptors = 'middlewares' in input ? createRouteInterceptors(input) : [];
732
+ const inputInterceptors = 'interceptors' in input ? input.interceptors ?? [] : [];
733
+ const interceptors = [...globalInterceptors, ...routeInterceptors, ...inputInterceptors];
734
+ if (inputSchema || outputSchema) {
735
+ const schema = {};
736
+ if (inputSchema)
737
+ schema.input = inputSchema;
738
+ if (outputSchema)
739
+ schema.output = outputSchema;
740
+ schemaRegistry.register(name, schema);
741
+ }
742
+ registry.stream(name, handler, {
743
+ description,
744
+ direction,
745
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
746
+ });
747
+ logger.debug({ name }, 'Added stream');
748
+ return server;
749
+ },
750
+ addEvent(input) {
751
+ const name = input.name;
752
+ const handler = input.handler;
753
+ const inputSchema = input.inputSchema;
754
+ const description = 'meta' in input ? input.meta?.description : input.description;
755
+ const delivery = 'meta' in input ? input.meta?.delivery : input.delivery;
756
+ const retryPolicy = 'meta' in input ? input.meta?.retryPolicy : input.retryPolicy;
757
+ const deduplicationWindow = 'meta' in input ? input.meta?.deduplicationWindow : input.deduplicationWindow;
758
+ const routeInterceptors = 'middlewares' in input ? createRouteInterceptors(input) : [];
759
+ const inputInterceptors = 'interceptors' in input ? input.interceptors ?? [] : [];
760
+ const interceptors = [...globalInterceptors, ...routeInterceptors, ...inputInterceptors];
761
+ if (inputSchema) {
762
+ schemaRegistry.register(name, { input: inputSchema });
763
+ }
764
+ registry.event(name, handler, {
765
+ description,
766
+ delivery,
767
+ retryPolicy,
768
+ deduplicationWindow,
769
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
770
+ });
771
+ logger.debug({ name }, 'Added event');
772
+ return server;
773
+ },
774
+ addChannel(channel) {
775
+ registerChannel(channel);
776
+ logger.debug({ name: channel.name }, 'Channel configuration registered');
777
+ return server;
778
+ },
779
+ addRest(resource) {
780
+ registerRestResource(resource);
781
+ return server;
782
+ },
783
+ addResource(resource) {
784
+ registerResource(resource);
785
+ return server;
786
+ },
787
+ addTcpHandler(handler) {
788
+ registerTcpHandler(handler);
789
+ return server;
790
+ },
791
+ addUdpHandler(handler) {
792
+ registerUdpHandler(handler);
793
+ return server;
794
+ },
795
+ addDiscovery(result) {
796
+ applyDiscoveryResult(result);
797
+ logger.debug({
798
+ routes: result.routes.length,
799
+ channels: result.channels.length,
800
+ rest: result.restResources.length,
801
+ resources: result.resources.length,
802
+ tcp: result.tcpHandlers.length,
803
+ udp: result.udpHandlers.length,
804
+ }, 'Added discovery result');
805
+ return server;
806
+ },
807
+ // === Lifecycle ===
808
+ async start() {
809
+ if (running) {
810
+ throw new Error('Server is already running');
811
+ }
812
+ // Initialize providers
813
+ if (providerDefinitions.size > 0) {
814
+ logger.debug({ count: providerDefinitions.size }, 'Initializing providers');
815
+ for (const [name, definition] of providerDefinitions) {
816
+ try {
817
+ const instance = await definition.factory();
818
+ resolvedProviders[name] = instance;
819
+ logger.debug({ name }, 'Provider initialized');
820
+ }
821
+ catch (err) {
822
+ logger.error({ err, name }, 'Failed to initialize provider');
823
+ throw err;
824
+ }
825
+ }
826
+ // Add interceptor to inject providers into context
827
+ globalInterceptors.unshift(async (_env, ctx, next) => {
828
+ // Inject all providers into context
829
+ const ctxAny = ctx;
830
+ for (const [name, instance] of Object.entries(resolvedProviders)) {
831
+ ctxAny[name] = instance;
832
+ }
833
+ return next();
834
+ });
835
+ }
836
+ // Initialize metrics if enabled
837
+ if (metricsConfig?.enabled && metricsRegistry) {
838
+ logger.debug({ endpoint: metricsConfig.endpoint }, 'Initializing metrics');
839
+ // Add request metrics interceptor
840
+ if (metricsConfig.collectRequestMetrics) {
841
+ globalInterceptors.unshift(createMetricsInterceptor(metricsRegistry));
842
+ }
843
+ // Start process metrics collection
844
+ if (metricsConfig.collectProcessMetrics) {
845
+ processMetricsCleanup = startProcessMetricsCollection(metricsRegistry);
846
+ }
847
+ // Register /metrics endpoint as a procedure
848
+ const metricsEndpointName = `__metrics__`;
849
+ registry.procedure(metricsEndpointName, async () => {
850
+ return metricsRegistry.export('prometheus');
851
+ });
852
+ logger.info({ endpoint: metricsConfig.endpoint }, 'Metrics enabled');
853
+ }
854
+ // Initialize tracing if enabled
855
+ if (tracingConfig?.enabled && tracerInstance) {
856
+ logger.debug({
857
+ serviceName: tracingConfig.serviceName,
858
+ sampleRate: tracingConfig.sampleRate,
859
+ }, 'Initializing tracing');
860
+ // Add tracing interceptor (should be first to capture full request duration)
861
+ globalInterceptors.unshift(createTracingInterceptor(tracerInstance));
862
+ logger.info({
863
+ serviceName: tracingConfig.serviceName,
864
+ sampleRate: tracingConfig.sampleRate,
865
+ exporters: tracingConfig.exporters?.length ?? 0,
866
+ }, 'Tracing enabled');
867
+ }
868
+ // Load file-system handlers first (before starting adapters)
869
+ if (discoveryWatcher) {
870
+ const result = await discoveryWatcher.start();
871
+ applyDiscoveryResult(result);
872
+ }
873
+ addresses = {
874
+ http: { host, port },
875
+ };
876
+ // Build HTTP middleware list
877
+ const httpMiddleware = [];
878
+ if (httpOptions?.middleware?.length) {
879
+ httpMiddleware.push(...httpOptions.middleware);
880
+ }
881
+ // Add USD Documentation handlers if enabled
882
+ if (usdDocsConfig) {
883
+ usdDocsHandlers = createUSDHandlers({
884
+ registry,
885
+ schemaRegistry,
886
+ channels: channelRegistry,
887
+ restResources: restResourceRegistry,
888
+ tcpHandlers,
889
+ udpHandlers,
890
+ protocolConfig: protocols,
891
+ }, {
892
+ basePath: usdDocsConfig.basePath ?? '/docs',
893
+ info: usdDocsConfig.info,
894
+ servers: usdDocsConfig.servers,
895
+ protocols: usdDocsConfig.protocols,
896
+ securitySchemes: usdDocsConfig.securitySchemes,
897
+ defaultSecurity: usdDocsConfig.defaultSecurity,
898
+ tags: usdDocsConfig.tags,
899
+ externalDocs: usdDocsConfig.externalDocs,
900
+ ui: usdDocsConfig.ui,
901
+ includeErrorSchemas: usdDocsConfig.includeErrorSchemas,
902
+ includeStreamEventSchemas: usdDocsConfig.includeStreamEventSchemas,
903
+ jsonrpc: usdDocsConfig.jsonrpc,
904
+ grpc: usdDocsConfig.grpc,
905
+ });
906
+ // Create Hono middleware for USD routes
907
+ const usdBasePath = usdDocsConfig.basePath ?? '/docs';
908
+ httpMiddleware.push(createDocsRouteMiddleware([
909
+ { method: 'GET', path: usdBasePath, handler: usdDocsHandlers.serveUI },
910
+ { method: 'GET', path: `${usdBasePath}/usd.json`, handler: usdDocsHandlers.serveUSD },
911
+ { method: 'GET', path: `${usdBasePath}/usd.yaml`, handler: usdDocsHandlers.serveUSDYaml },
912
+ { method: 'GET', path: `${usdBasePath}/openapi.json`, handler: usdDocsHandlers.serveOpenAPI },
913
+ ]));
914
+ logger.info({ basePath: usdBasePath }, 'USD Documentation middleware registered');
915
+ }
916
+ httpMiddleware.push(createHttpOverrideMiddleware({
917
+ router,
918
+ registry,
919
+ basePath,
920
+ maxBodySize: httpOptions?.maxBodySize ?? 1024 * 1024,
921
+ contextFactory: httpOptions?.contextFactory,
922
+ codecs: httpOptions?.codecs,
923
+ }));
924
+ // Add REST middleware for proper HTTP verb routing
925
+ if (restResourceRegistry.length > 0) {
926
+ httpMiddleware.push(createRestMiddleware({
927
+ restResources: restResourceRegistry,
928
+ router,
929
+ basePath,
930
+ maxBodySize: httpOptions?.maxBodySize ?? 1024 * 1024,
931
+ contextFactory: httpOptions?.contextFactory,
932
+ codecs: httpOptions?.codecs,
933
+ }));
934
+ logRestMiddlewareRegistered(restResourceRegistry.length);
935
+ }
936
+ // Add JSON-RPC middleware when sharing the HTTP port
937
+ if (protocols.jsonrpc?.enabled && protocols.jsonrpc.shared) {
938
+ const rpcOpts = protocols.jsonrpc.options;
939
+ const rpcPath = rpcOpts.path || '/rpc';
940
+ const sharedRpcPath = joinBasePath(basePath, rpcPath);
941
+ httpMiddleware.push(createJsonRpcMiddleware(router, {
942
+ path: sharedRpcPath,
943
+ timeout: rpcOpts.timeout,
944
+ maxBodySize: rpcOpts.maxBodySize,
945
+ cors: false,
946
+ codecs: rpcOpts.codecs,
947
+ }));
948
+ }
949
+ // Add GraphQL middleware when sharing the HTTP port
950
+ if (protocols.graphql?.enabled && protocols.graphql.shared) {
951
+ const gqlOpts = protocols.graphql.options;
952
+ const gqlPath = gqlOpts.path || '/graphql';
953
+ const sharedGqlPath = joinBasePath(basePath, gqlPath);
954
+ const isDev = isDevelopment();
955
+ graphqlMiddleware = createGraphQLMiddleware({
956
+ router,
957
+ registry,
958
+ schemaRegistry,
959
+ config: {
960
+ ...gqlOpts,
961
+ path: sharedGqlPath,
962
+ playground: gqlOpts.playground ?? isDev,
963
+ introspection: gqlOpts.introspection ?? isDev,
964
+ timeout: gqlOpts.timeout ?? 30000,
965
+ maxBodySize: gqlOpts.maxBodySize ?? 1024 * 1024,
966
+ },
967
+ });
968
+ httpMiddleware.push(graphqlMiddleware.middleware);
969
+ graphqlAdapter = {
970
+ async start() {
971
+ if (!httpServer?.server)
972
+ return;
973
+ graphqlSubscriptionServer = graphqlMiddleware?.createSubscriptionServer(httpServer.server) ?? null;
974
+ },
975
+ async stop() {
976
+ if (graphqlSubscriptionServer) {
977
+ graphqlSubscriptionServer.close();
978
+ graphqlSubscriptionServer = null;
979
+ }
980
+ },
981
+ get schema() {
982
+ return graphqlMiddleware.schema;
983
+ },
984
+ get schemaInfo() {
985
+ return graphqlMiddleware.schemaInfo;
986
+ },
987
+ get address() {
988
+ return { host, port, path: sharedGqlPath };
989
+ },
990
+ };
991
+ }
992
+ // Start HTTP adapter (always)
993
+ httpServer = createHttpAdapter(router, {
994
+ port,
995
+ host,
996
+ basePath,
997
+ maxBodySize: httpOptions?.maxBodySize,
998
+ contextFactory: httpOptions?.contextFactory,
999
+ codecs: httpOptions?.codecs,
1000
+ cors: cors === true
1001
+ ? {
1002
+ origin: '*',
1003
+ methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
1004
+ headers: ['Content-Type', 'Authorization', 'Accept', 'X-Request-Id', 'Traceparent', 'Tracestate'],
1005
+ }
1006
+ : cors,
1007
+ middleware: httpMiddleware.length > 0 ? httpMiddleware : undefined,
1008
+ });
1009
+ await httpServer.start();
1010
+ // Start WebSocket adapter
1011
+ if (protocols.websocket?.enabled) {
1012
+ const wsOpts = protocols.websocket.options;
1013
+ const channels = buildChannelOptions(channelRegistry, wsOpts.channels);
1014
+ if (protocols.websocket.shared) {
1015
+ // Share HTTP port - attach to HTTP server
1016
+ wsAdapter = createWebSocketAdapter(router, {
1017
+ host,
1018
+ port,
1019
+ server: httpServer.server ?? undefined,
1020
+ path: wsOpts.path || '/',
1021
+ maxPayloadSize: wsOpts.maxPayloadSize,
1022
+ heartbeatInterval: wsOpts.heartbeatInterval,
1023
+ channels,
1024
+ contextFactory: wsOpts.contextFactory,
1025
+ });
1026
+ addresses.websocket = { host, port, path: wsOpts.path || '/', shared: true };
1027
+ }
1028
+ else {
1029
+ wsAdapter = createWebSocketAdapter(router, {
1030
+ port: wsOpts.port,
1031
+ host,
1032
+ path: wsOpts.path || '/',
1033
+ maxPayloadSize: wsOpts.maxPayloadSize,
1034
+ heartbeatInterval: wsOpts.heartbeatInterval,
1035
+ channels,
1036
+ contextFactory: wsOpts.contextFactory,
1037
+ });
1038
+ addresses.websocket = { host, port: wsOpts.port, path: wsOpts.path || '/', shared: false };
1039
+ }
1040
+ await wsAdapter.start();
1041
+ }
1042
+ // Start JSON-RPC adapter
1043
+ if (protocols.jsonrpc?.enabled) {
1044
+ const rpcOpts = protocols.jsonrpc.options;
1045
+ if (protocols.jsonrpc.shared) {
1046
+ const rpcPath = rpcOpts.path || '/rpc';
1047
+ addresses.jsonrpc = { host, port, path: joinBasePath(basePath, rpcPath), shared: true };
1048
+ }
1049
+ else {
1050
+ jsonRpcAdapter = createJsonRpcAdapter(router, {
1051
+ port: rpcOpts.port,
1052
+ host,
1053
+ path: rpcOpts.path || '/rpc',
1054
+ timeout: rpcOpts.timeout,
1055
+ maxBodySize: rpcOpts.maxBodySize,
1056
+ });
1057
+ addresses.jsonrpc = { host, port: rpcOpts.port, path: rpcOpts.path || '/rpc', shared: false };
1058
+ await jsonRpcAdapter.start();
1059
+ }
1060
+ }
1061
+ // Start TCP adapter
1062
+ if (protocols.tcp?.enabled) {
1063
+ const tcpOpts = protocols.tcp.options;
1064
+ tcpAdapter = createTcpAdapter(router, {
1065
+ port: tcpOpts.port,
1066
+ host: tcpOpts.host || host,
1067
+ maxMessageSize: tcpOpts.maxMessageSize,
1068
+ keepAliveInterval: tcpOpts.keepAliveInterval,
1069
+ });
1070
+ await tcpAdapter.start();
1071
+ addresses.tcp = { host: tcpOpts.host || host, port: tcpOpts.port };
1072
+ }
1073
+ // Start gRPC adapter
1074
+ if (protocols.grpc?.enabled) {
1075
+ const grpcOpts = protocols.grpc.options;
1076
+ grpcAdapter = createGrpcAdapter(router, {
1077
+ host: grpcOpts.host || host,
1078
+ port: grpcOpts.port,
1079
+ protoPath: grpcOpts.protoPath,
1080
+ packageName: grpcOpts.packageName,
1081
+ serviceNames: grpcOpts.serviceNames,
1082
+ loaderOptions: grpcOpts.loaderOptions,
1083
+ tls: grpcOpts.tls,
1084
+ maxReceiveMessageLength: grpcOpts.maxReceiveMessageLength,
1085
+ maxSendMessageLength: grpcOpts.maxSendMessageLength,
1086
+ });
1087
+ await grpcAdapter.start();
1088
+ if (grpcAdapter.address) {
1089
+ addresses.grpc = grpcAdapter.address;
1090
+ }
1091
+ else {
1092
+ addresses.grpc = { host: grpcOpts.host || host, port: grpcOpts.port };
1093
+ }
1094
+ }
1095
+ // Start GraphQL adapter
1096
+ if (protocols.graphql?.enabled) {
1097
+ const gqlOpts = protocols.graphql.options;
1098
+ const gqlPath = gqlOpts.path || '/graphql';
1099
+ if (protocols.graphql.shared) {
1100
+ if (graphqlAdapter) {
1101
+ await graphqlAdapter.start();
1102
+ }
1103
+ addresses.graphql = { host, port, path: joinBasePath(basePath, gqlPath), shared: true };
1104
+ }
1105
+ else {
1106
+ const isDev = isDevelopment();
1107
+ graphqlAdapter = createGraphQLAdapter({
1108
+ router,
1109
+ registry,
1110
+ schemaRegistry,
1111
+ host,
1112
+ port: gqlOpts.port,
1113
+ config: {
1114
+ ...gqlOpts,
1115
+ path: gqlPath,
1116
+ playground: gqlOpts.playground ?? isDev,
1117
+ introspection: gqlOpts.introspection ?? isDev,
1118
+ timeout: gqlOpts.timeout ?? 30000,
1119
+ maxBodySize: gqlOpts.maxBodySize ?? 1024 * 1024,
1120
+ },
1121
+ });
1122
+ await graphqlAdapter.start();
1123
+ addresses.graphql = { host, port: gqlOpts.port, path: gqlPath, shared: false };
1124
+ }
1125
+ }
1126
+ // Start custom TCP handlers (added via .addTcpHandler())
1127
+ for (const handler of tcpHandlers) {
1128
+ const { createTcpServer } = await import('./fs-routes/tcp/index.js');
1129
+ const tcpServer = createTcpServer(handler);
1130
+ await tcpServer.start();
1131
+ tcpServers.push(tcpServer);
1132
+ logger.info({ name: handler.name, port: handler.config.port }, 'TCP handler started');
1133
+ }
1134
+ // Start custom UDP handlers (added via .addUdpHandler())
1135
+ for (const handler of udpHandlers) {
1136
+ const { createUdpServer } = await import('./fs-routes/udp/index.js');
1137
+ const udpServer = createUdpServer(handler);
1138
+ await udpServer.start();
1139
+ udpServers.push(udpServer);
1140
+ logger.info({ name: handler.name, port: handler.config.port }, 'UDP handler started');
1141
+ }
1142
+ running = true;
1143
+ },
1144
+ async stop() {
1145
+ if (!running)
1146
+ return;
1147
+ const stops = [];
1148
+ if (tcpAdapter) {
1149
+ stops.push(tcpAdapter.stop());
1150
+ tcpAdapter = null;
1151
+ }
1152
+ if (jsonRpcAdapter) {
1153
+ stops.push(jsonRpcAdapter.stop());
1154
+ jsonRpcAdapter = null;
1155
+ }
1156
+ if (wsAdapter) {
1157
+ stops.push(wsAdapter.stop());
1158
+ wsAdapter = null;
1159
+ }
1160
+ if (httpServer) {
1161
+ stops.push(httpServer.stop());
1162
+ httpServer = null;
1163
+ }
1164
+ if (grpcAdapter) {
1165
+ stops.push(grpcAdapter.stop());
1166
+ grpcAdapter = null;
1167
+ }
1168
+ if (graphqlAdapter) {
1169
+ stops.push(graphqlAdapter.stop());
1170
+ graphqlAdapter = null;
1171
+ }
1172
+ await Promise.all(stops);
1173
+ // Stop custom TCP servers
1174
+ for (const tcpServer of tcpServers) {
1175
+ await tcpServer.stop();
1176
+ }
1177
+ tcpServers.length = 0;
1178
+ // Stop custom UDP servers
1179
+ for (const udpServer of udpServers) {
1180
+ await udpServer.stop();
1181
+ }
1182
+ udpServers.length = 0;
1183
+ // Stop discovery watcher
1184
+ if (discoveryWatcher) {
1185
+ discoveryWatcher.stop();
1186
+ }
1187
+ // Stop process metrics collection
1188
+ if (processMetricsCleanup) {
1189
+ processMetricsCleanup();
1190
+ processMetricsCleanup = null;
1191
+ }
1192
+ // Shutdown tracer (flush pending spans)
1193
+ if (tracerInstance) {
1194
+ await tracerInstance.shutdown();
1195
+ tracerInstance = null;
1196
+ }
1197
+ // Shutdown providers
1198
+ for (const [name, definition] of providerDefinitions) {
1199
+ if (definition.onShutdown && resolvedProviders[name]) {
1200
+ try {
1201
+ await definition.onShutdown(resolvedProviders[name]);
1202
+ logger.debug({ name }, 'Provider shut down');
1203
+ }
1204
+ catch (err) {
1205
+ logger.error({ err, name }, 'Error shutting down provider');
1206
+ }
1207
+ }
1208
+ }
1209
+ router.stop();
1210
+ running = false;
1211
+ addresses = null;
1212
+ },
1213
+ async restart() {
1214
+ await server.stop();
1215
+ await server.start();
1216
+ },
1217
+ // === Protocol Namespaces ===
1218
+ get http() {
1219
+ // Uses persistent httpInterceptors from outer scope for shared middleware chain
1220
+ const httpNamespace = {
1221
+ get(path, optionsOrHandler, maybeHandler) {
1222
+ registerHttpRoute('GET', path, optionsOrHandler, maybeHandler);
1223
+ return httpNamespace;
1224
+ },
1225
+ post(path, optionsOrHandler, maybeHandler) {
1226
+ registerHttpRoute('POST', path, optionsOrHandler, maybeHandler);
1227
+ return httpNamespace;
1228
+ },
1229
+ put(path, optionsOrHandler, maybeHandler) {
1230
+ registerHttpRoute('PUT', path, optionsOrHandler, maybeHandler);
1231
+ return httpNamespace;
1232
+ },
1233
+ patch(path, optionsOrHandler, maybeHandler) {
1234
+ registerHttpRoute('PATCH', path, optionsOrHandler, maybeHandler);
1235
+ return httpNamespace;
1236
+ },
1237
+ delete(path, optionsOrHandler, maybeHandler) {
1238
+ registerHttpRoute('DELETE', path, optionsOrHandler, maybeHandler);
1239
+ return httpNamespace;
1240
+ },
1241
+ options(path, optionsOrHandler, maybeHandler) {
1242
+ registerHttpRoute('OPTIONS', path, optionsOrHandler, maybeHandler);
1243
+ return httpNamespace;
1244
+ },
1245
+ head(path, optionsOrHandler, maybeHandler) {
1246
+ registerHttpRoute('HEAD', path, optionsOrHandler, maybeHandler);
1247
+ return httpNamespace;
1248
+ },
1249
+ use(interceptor) {
1250
+ httpInterceptors.push(interceptor);
1251
+ return httpNamespace;
1252
+ },
1253
+ };
1254
+ return httpNamespace;
1255
+ },
1256
+ get ws() {
1257
+ // Handler state for chained API - these are local since channel() consumes them
1258
+ let subscribeHandler = null;
1259
+ let messageHandler = null;
1260
+ let unsubscribeHandler = null;
1261
+ // Uses persistent wsInterceptors from outer scope for shared middleware chain
1262
+ const wsNamespace = {
1263
+ channel(channelName, options) {
1264
+ // Determine auth requirement based on type
1265
+ const authRequirement = options?.type === 'public' ? 'none' : 'required';
1266
+ // Wrap handlers to match ChannelExports signature
1267
+ const wrappedOnJoin = subscribeHandler
1268
+ ? (member, ctx) => subscribeHandler(channelName, ctx)
1269
+ : undefined;
1270
+ const wrappedOnLeave = unsubscribeHandler
1271
+ ? (member, ctx) => unsubscribeHandler(channelName, ctx)
1272
+ : undefined;
1273
+ // Register channel with the channel registry using correct LoadedChannel structure
1274
+ const channelDef = {
1275
+ name: channelName,
1276
+ filePath: '<programmatic>',
1277
+ config: {
1278
+ auth: authRequirement,
1279
+ onJoin: wrappedOnJoin,
1280
+ onLeave: wrappedOnLeave,
1281
+ },
1282
+ };
1283
+ channelRegistry.set(channelName, channelDef);
1284
+ logger.debug({ name: channelName, type: options?.type ?? 'public', auth: authRequirement }, 'Added WebSocket channel');
1285
+ return wsNamespace;
1286
+ },
1287
+ onSubscribe(handler) {
1288
+ subscribeHandler = handler;
1289
+ return wsNamespace;
1290
+ },
1291
+ onMessage(handler) {
1292
+ messageHandler = handler;
1293
+ return wsNamespace;
1294
+ },
1295
+ onUnsubscribe(handler) {
1296
+ unsubscribeHandler = handler;
1297
+ return wsNamespace;
1298
+ },
1299
+ use(interceptor) {
1300
+ wsInterceptors.push(interceptor);
1301
+ return wsNamespace;
1302
+ },
1303
+ };
1304
+ return wsNamespace;
1305
+ },
1306
+ get streams() {
1307
+ // Uses persistent streamInterceptors from outer scope for shared middleware chain
1308
+ const streamsNamespace = {
1309
+ source(name, optionsOrHandler, maybeHandler) {
1310
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && !isAsyncIterable(optionsOrHandler);
1311
+ const options = isOptionsObject ? optionsOrHandler : {};
1312
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1313
+ // Register as a stream handler using the registry
1314
+ const streamName = `stream:${name}`;
1315
+ const interceptors = [...globalInterceptors, ...streamInterceptors];
1316
+ if (options.input) {
1317
+ const schema = { input: options.input };
1318
+ schemaRegistry.register(streamName, schema);
1319
+ interceptors.unshift(createValidationInterceptor(schema));
1320
+ }
1321
+ registry.stream(streamName, handler, {
1322
+ description: options.description,
1323
+ direction: 'server',
1324
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1325
+ });
1326
+ logger.debug({ name: streamName, path: options.path ?? `/${name}` }, 'Added stream source');
1327
+ return streamsNamespace;
1328
+ },
1329
+ sink(name, optionsOrHandler, maybeHandler) {
1330
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null;
1331
+ const options = isOptionsObject ? optionsOrHandler : {};
1332
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1333
+ const streamName = `stream:${name}`;
1334
+ const interceptors = [...globalInterceptors, ...streamInterceptors];
1335
+ if (options.input) {
1336
+ const schema = { input: options.input };
1337
+ schemaRegistry.register(streamName, schema);
1338
+ interceptors.unshift(createValidationInterceptor(schema));
1339
+ }
1340
+ registry.stream(streamName, handler, {
1341
+ description: options.description,
1342
+ direction: 'client',
1343
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1344
+ });
1345
+ logger.debug({ name: streamName, path: options.path ?? `/${name}` }, 'Added stream sink');
1346
+ return streamsNamespace;
1347
+ },
1348
+ duplex(name, optionsOrHandler, maybeHandler) {
1349
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null;
1350
+ const options = isOptionsObject ? optionsOrHandler : {};
1351
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1352
+ const streamName = `stream:${name}`;
1353
+ const interceptors = [...globalInterceptors, ...streamInterceptors];
1354
+ if (options.input) {
1355
+ const schema = { input: options.input };
1356
+ schemaRegistry.register(streamName, schema);
1357
+ interceptors.unshift(createValidationInterceptor(schema));
1358
+ }
1359
+ registry.stream(streamName, handler, {
1360
+ description: options.description,
1361
+ direction: 'bidi',
1362
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1363
+ });
1364
+ logger.debug({ name: streamName, path: options.path ?? `/${name}` }, 'Added stream duplex');
1365
+ return streamsNamespace;
1366
+ },
1367
+ use(interceptor) {
1368
+ streamInterceptors.push(interceptor);
1369
+ return streamsNamespace;
1370
+ },
1371
+ };
1372
+ return streamsNamespace;
1373
+ },
1374
+ get rpc() {
1375
+ // Uses persistent rpcInterceptors from outer scope for shared middleware chain
1376
+ const registerRpcMethod = (name, optionsOrHandler, maybeHandler, isNotification = false) => {
1377
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && typeof maybeHandler === 'function';
1378
+ const options = isOptionsObject ? optionsOrHandler : {};
1379
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1380
+ const interceptors = [...globalInterceptors, ...rpcInterceptors];
1381
+ if (options.input) {
1382
+ const schema = { input: options.input, output: options.output };
1383
+ schemaRegistry.register(name, schema);
1384
+ interceptors.unshift(createValidationInterceptor(schema));
1385
+ }
1386
+ registry.procedure(name, handler, {
1387
+ description: options.description,
1388
+ tags: options.tags,
1389
+ jsonrpc: { notification: isNotification },
1390
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1391
+ });
1392
+ logger.debug({ name, notification: isNotification }, 'Added RPC method');
1393
+ };
1394
+ const rpcNamespace = {
1395
+ method(name, optionsOrHandler, maybeHandler) {
1396
+ registerRpcMethod(name, optionsOrHandler, maybeHandler, false);
1397
+ return rpcNamespace;
1398
+ },
1399
+ notification(name, optionsOrHandler, maybeHandler) {
1400
+ registerRpcMethod(name, optionsOrHandler, maybeHandler, true);
1401
+ return rpcNamespace;
1402
+ },
1403
+ use(interceptor) {
1404
+ rpcInterceptors.push(interceptor);
1405
+ return rpcNamespace;
1406
+ },
1407
+ };
1408
+ return rpcNamespace;
1409
+ },
1410
+ get tcpNs() {
1411
+ // Uses persistent tcpInterceptors from outer scope for shared middleware chain
1412
+ const tcpNamespace = {
1413
+ handler(name, options) {
1414
+ let connectHandler;
1415
+ let dataHandler;
1416
+ let closeHandler;
1417
+ let errorHandler;
1418
+ const handlerBuilder = {
1419
+ onConnect(handler) {
1420
+ connectHandler = handler;
1421
+ return handlerBuilder;
1422
+ },
1423
+ onData(handler) {
1424
+ dataHandler = handler;
1425
+ return handlerBuilder;
1426
+ },
1427
+ onClose(handler) {
1428
+ closeHandler = handler;
1429
+ return handlerBuilder;
1430
+ },
1431
+ onError(handler) {
1432
+ errorHandler = handler;
1433
+ return handlerBuilder;
1434
+ },
1435
+ end() {
1436
+ // Build framing config if specified
1437
+ const framingConfig = options?.framing ? {
1438
+ type: options.framing,
1439
+ lengthBytes: 4,
1440
+ lengthEncoding: 'BE',
1441
+ maxMessageSize: 16 * 1024 * 1024,
1442
+ delimiter: options.delimiter ? Buffer.from(options.delimiter) : undefined,
1443
+ } : null;
1444
+ // Store TCP handler configuration for later startup
1445
+ const tcpHandler = {
1446
+ name,
1447
+ filePath: '<programmatic>',
1448
+ config: {
1449
+ port: options?.port ?? 0,
1450
+ host: options?.host ?? '0.0.0.0',
1451
+ keepAlive: true,
1452
+ keepAliveInitialDelay: 30000,
1453
+ timeout: 0,
1454
+ maxConnections: 0,
1455
+ noDelay: true,
1456
+ framing: framingConfig,
1457
+ },
1458
+ handlers: {
1459
+ onConnect: connectHandler,
1460
+ onData: dataHandler,
1461
+ onClose: closeHandler,
1462
+ onError: errorHandler,
1463
+ },
1464
+ };
1465
+ tcpHandlers.push(tcpHandler);
1466
+ logger.debug({ name, port: options?.port }, 'Added TCP handler');
1467
+ return tcpNamespace;
1468
+ },
1469
+ };
1470
+ return handlerBuilder;
1471
+ },
1472
+ use(interceptor) {
1473
+ tcpInterceptors.push(interceptor);
1474
+ return tcpNamespace;
1475
+ },
1476
+ };
1477
+ return tcpNamespace;
1478
+ },
1479
+ get udp() {
1480
+ // Uses persistent udpInterceptors from outer scope for shared middleware chain
1481
+ const udpNamespace = {
1482
+ handler(name, options) {
1483
+ let messageHandler;
1484
+ let errorHandler;
1485
+ const handlerBuilder = {
1486
+ onMessage(handler) {
1487
+ messageHandler = handler;
1488
+ return handlerBuilder;
1489
+ },
1490
+ onError(handler) {
1491
+ errorHandler = handler;
1492
+ return handlerBuilder;
1493
+ },
1494
+ end() {
1495
+ // Build multicast config if specified
1496
+ const multicastConfig = options?.multicast ? {
1497
+ group: options.multicast,
1498
+ ttl: 1,
1499
+ loopback: false,
1500
+ } : null;
1501
+ // Store UDP handler configuration for later startup
1502
+ const udpHandler = {
1503
+ name,
1504
+ filePath: '<programmatic>',
1505
+ config: {
1506
+ port: options?.port ?? 0,
1507
+ host: options?.host ?? '0.0.0.0',
1508
+ type: options?.type ?? 'udp4',
1509
+ reuseAddr: true,
1510
+ reusePort: false,
1511
+ recvBufferSize: 65536,
1512
+ sendBufferSize: 65536,
1513
+ ipv6Only: false,
1514
+ multicast: multicastConfig,
1515
+ },
1516
+ handlers: {
1517
+ onMessage: messageHandler,
1518
+ onError: errorHandler,
1519
+ },
1520
+ };
1521
+ udpHandlers.push(udpHandler);
1522
+ logger.debug({ name, port: options?.port }, 'Added UDP handler');
1523
+ return udpNamespace;
1524
+ },
1525
+ };
1526
+ return handlerBuilder;
1527
+ },
1528
+ use(interceptor) {
1529
+ udpInterceptors.push(interceptor);
1530
+ return udpNamespace;
1531
+ },
1532
+ };
1533
+ return udpNamespace;
1534
+ },
1535
+ get grpcNs() {
1536
+ // Interceptors for gRPC namespace
1537
+ const grpcInterceptors = [];
1538
+ const grpcNamespace = {
1539
+ service(serviceName, serviceOptions) {
1540
+ const packageName = serviceOptions?.packageName ?? '';
1541
+ const serviceBuilder = {
1542
+ method(name, optionsOrHandler, maybeHandler) {
1543
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && typeof maybeHandler === 'function';
1544
+ const options = isOptionsObject ? optionsOrHandler : {};
1545
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1546
+ const procedureName = packageName ? `${packageName}.${serviceName}.${name}` : `${serviceName}.${name}`;
1547
+ const interceptors = [...globalInterceptors, ...grpcInterceptors];
1548
+ if (options.input || options.output) {
1549
+ const schema = {};
1550
+ if (options.input)
1551
+ schema.input = options.input;
1552
+ if (options.output)
1553
+ schema.output = options.output;
1554
+ schemaRegistry.register(procedureName, schema);
1555
+ interceptors.unshift(createValidationInterceptor(schema));
1556
+ }
1557
+ registry.procedure(procedureName, handler, {
1558
+ description: options.description,
1559
+ grpc: { service: serviceName, method: name, type: 'unary' },
1560
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1561
+ });
1562
+ logger.debug({ name: procedureName, type: 'unary' }, 'Added gRPC method');
1563
+ return serviceBuilder;
1564
+ },
1565
+ serverStream(name, optionsOrHandler, maybeHandler) {
1566
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && typeof maybeHandler === 'function';
1567
+ const options = isOptionsObject ? optionsOrHandler : {};
1568
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1569
+ const procedureName = packageName ? `${packageName}.${serviceName}.${name}` : `${serviceName}.${name}`;
1570
+ const interceptors = [...globalInterceptors, ...grpcInterceptors];
1571
+ if (options.input || options.output) {
1572
+ const schema = {};
1573
+ if (options.input)
1574
+ schema.input = options.input;
1575
+ if (options.output)
1576
+ schema.output = options.output;
1577
+ schemaRegistry.register(procedureName, schema);
1578
+ }
1579
+ registry.stream(procedureName, handler, {
1580
+ description: options.description,
1581
+ direction: 'server',
1582
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1583
+ });
1584
+ logger.debug({ name: procedureName, type: 'server-stream' }, 'Added gRPC server stream');
1585
+ return serviceBuilder;
1586
+ },
1587
+ clientStream(name, optionsOrHandler, maybeHandler) {
1588
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && typeof maybeHandler === 'function';
1589
+ const options = isOptionsObject ? optionsOrHandler : {};
1590
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1591
+ const procedureName = packageName ? `${packageName}.${serviceName}.${name}` : `${serviceName}.${name}`;
1592
+ const interceptors = [...globalInterceptors, ...grpcInterceptors];
1593
+ if (options.input || options.output) {
1594
+ const schema = {};
1595
+ if (options.input)
1596
+ schema.input = options.input;
1597
+ if (options.output)
1598
+ schema.output = options.output;
1599
+ schemaRegistry.register(procedureName, schema);
1600
+ }
1601
+ registry.stream(procedureName, handler, {
1602
+ description: options.description,
1603
+ direction: 'client',
1604
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1605
+ });
1606
+ logger.debug({ name: procedureName, type: 'client-stream' }, 'Added gRPC client stream');
1607
+ return serviceBuilder;
1608
+ },
1609
+ bidiStream(name, optionsOrHandler, maybeHandler) {
1610
+ const isOptionsObject = typeof optionsOrHandler === 'object' && optionsOrHandler !== null && typeof maybeHandler === 'function';
1611
+ const options = isOptionsObject ? optionsOrHandler : {};
1612
+ const handler = isOptionsObject ? maybeHandler : optionsOrHandler;
1613
+ const procedureName = packageName ? `${packageName}.${serviceName}.${name}` : `${serviceName}.${name}`;
1614
+ const interceptors = [...globalInterceptors, ...grpcInterceptors];
1615
+ if (options.input || options.output) {
1616
+ const schema = {};
1617
+ if (options.input)
1618
+ schema.input = options.input;
1619
+ if (options.output)
1620
+ schema.output = options.output;
1621
+ schemaRegistry.register(procedureName, schema);
1622
+ }
1623
+ registry.stream(procedureName, handler, {
1624
+ description: options.description,
1625
+ direction: 'bidi',
1626
+ interceptors: interceptors.length > 0 ? interceptors : undefined,
1627
+ });
1628
+ logger.debug({ name: procedureName, type: 'bidi-stream' }, 'Added gRPC bidi stream');
1629
+ return serviceBuilder;
1630
+ },
1631
+ end() {
1632
+ return grpcNamespace;
1633
+ },
1634
+ };
1635
+ return serviceBuilder;
1636
+ },
1637
+ use(interceptor) {
1638
+ grpcInterceptors.push(interceptor);
1639
+ return grpcNamespace;
1640
+ },
1641
+ };
1642
+ return grpcNamespace;
1643
+ },
1644
+ // === Accessors ===
1645
+ get registry() {
1646
+ return registry;
1647
+ },
1648
+ get router() {
1649
+ return router;
1650
+ },
1651
+ get isRunning() {
1652
+ return running;
1653
+ },
1654
+ get addresses() {
1655
+ return addresses;
1656
+ },
1657
+ get channels() {
1658
+ return wsAdapter?.channels ?? null;
1659
+ },
1660
+ get discoveryWatcher() { return discoveryWatcher; },
1661
+ get providers() { return resolvedProviders; },
1662
+ get graphql() { return graphqlAdapter; },
1663
+ get metrics() { return metricsRegistry; },
1664
+ get tracer() { return tracerInstance; },
1665
+ get usd() { return usdDocsHandlers; },
1666
+ // === USD Document Access ===
1667
+ getUSDDocument() {
1668
+ if (!usdDocsHandlers) {
1669
+ return null;
1670
+ }
1671
+ return usdDocsHandlers.getUSDDocument();
1672
+ },
1673
+ getOpenAPIDocument() {
1674
+ if (!usdDocsHandlers) {
1675
+ return null;
1676
+ }
1677
+ return usdDocsHandlers.getOpenAPIDocument();
1678
+ },
1679
+ };
1680
+ return server;
1681
+ }
1682
+ //# sourceMappingURL=builder.js.map