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,913 @@
1
+ /**
2
+ * Authentication Middleware
3
+ *
4
+ * Provides authentication drivers for various auth strategies:
5
+ * - Cookie Session: Session-based auth with signed cookies
6
+ * - Basic Auth: HTTP Basic authentication
7
+ * - Bearer Token: JWT/API key token authentication
8
+ *
9
+ * @example
10
+ * import { basicAuth, bearerAuth, cookieSession } from 'raffel/http'
11
+ *
12
+ * // Basic Auth
13
+ * app.use('/admin/*', basicAuth({
14
+ * username: 'admin',
15
+ * password: 'secret',
16
+ * realm: 'Admin Area'
17
+ * }))
18
+ *
19
+ * // Bearer Token
20
+ * app.use('/api/*', bearerAuth({
21
+ * verifyToken: async (token) => {
22
+ * const user = await verifyJWT(token)
23
+ * return user ? { user } : null
24
+ * }
25
+ * }))
26
+ *
27
+ * // Cookie Session
28
+ * app.use('*', cookieSession({
29
+ * secret: 'my-secret-key',
30
+ * cookieName: 'session',
31
+ * maxAge: 86400
32
+ * }))
33
+ */
34
+ import { setSignedCookie, getSignedCookie, deleteCookie } from './cookie.js';
35
+ /**
36
+ * Adapt HttpContextInterface to CookieContext
37
+ */
38
+ function toCookieContext(c) {
39
+ return {
40
+ req: {
41
+ header: (name) => c.req.header(name),
42
+ raw: {
43
+ headers: {
44
+ cookie: c.req.header('cookie'),
45
+ },
46
+ },
47
+ },
48
+ header: (name, value) => c.header(name, value),
49
+ };
50
+ }
51
+ // ─────────────────────────────────────────────────────────────────────────────
52
+ // Basic Auth Middleware
53
+ // ─────────────────────────────────────────────────────────────────────────────
54
+ /**
55
+ * Create HTTP Basic Authentication middleware
56
+ *
57
+ * @param options - Basic auth configuration
58
+ * @returns Middleware function
59
+ *
60
+ * @example
61
+ * // Simple username/password
62
+ * app.use('/admin/*', basicAuth({
63
+ * username: 'admin',
64
+ * password: 'secret'
65
+ * }))
66
+ *
67
+ * // Custom verification
68
+ * app.use('/admin/*', basicAuth({
69
+ * username: async (user, pass) => {
70
+ * const valid = await db.verifyCredentials(user, pass)
71
+ * return valid
72
+ * }
73
+ * }))
74
+ */
75
+ export function basicAuth(options) {
76
+ const { username, password, realm = 'Secure Area', errorMessage = 'Unauthorized', } = options;
77
+ const isVerifyFn = typeof username === 'function';
78
+ return async (c, next) => {
79
+ const authHeader = c.req.header('authorization');
80
+ if (!authHeader || !authHeader.toLowerCase().startsWith('basic ')) {
81
+ return createUnauthorizedResponse(realm, errorMessage);
82
+ }
83
+ // Decode base64 credentials
84
+ const base64Credentials = authHeader.slice(6);
85
+ let decoded;
86
+ try {
87
+ decoded = atob(base64Credentials);
88
+ }
89
+ catch {
90
+ return createUnauthorizedResponse(realm, errorMessage);
91
+ }
92
+ const colonIndex = decoded.indexOf(':');
93
+ if (colonIndex === -1) {
94
+ return createUnauthorizedResponse(realm, errorMessage);
95
+ }
96
+ const providedUsername = decoded.slice(0, colonIndex);
97
+ const providedPassword = decoded.slice(colonIndex + 1);
98
+ // Verify credentials
99
+ let valid = false;
100
+ if (isVerifyFn) {
101
+ valid = await username(providedUsername, providedPassword);
102
+ }
103
+ else {
104
+ // Timing-safe comparison
105
+ valid = timingSafeEqual(providedUsername, username) &&
106
+ timingSafeEqual(providedPassword, password || '');
107
+ }
108
+ if (!valid) {
109
+ return createUnauthorizedResponse(realm, errorMessage);
110
+ }
111
+ // Store authenticated username in context
112
+ c.set('basicAuth', { username: providedUsername });
113
+ await next();
114
+ };
115
+ }
116
+ // ─────────────────────────────────────────────────────────────────────────────
117
+ // Bearer Token Auth Middleware
118
+ // ─────────────────────────────────────────────────────────────────────────────
119
+ /**
120
+ * Create Bearer Token Authentication middleware
121
+ *
122
+ * @param options - Bearer auth configuration
123
+ * @returns Middleware function
124
+ *
125
+ * @example
126
+ * // JWT verification
127
+ * app.use('/api/*', bearerAuth({
128
+ * verifyToken: async (token) => {
129
+ * try {
130
+ * const payload = await jwt.verify(token, secret)
131
+ * return payload
132
+ * } catch {
133
+ * return null
134
+ * }
135
+ * }
136
+ * }))
137
+ *
138
+ * // API key verification
139
+ * app.use('/api/*', bearerAuth({
140
+ * prefix: 'ApiKey',
141
+ * verifyToken: async (key) => {
142
+ * const apiKey = await db.findApiKey(key)
143
+ * return apiKey ? { user: apiKey.user } : null
144
+ * }
145
+ * }))
146
+ */
147
+ export function bearerAuth(options) {
148
+ const { verifyToken, headerName = 'authorization', prefix = 'Bearer', queryParam, contextKey = 'auth', errorMessage = 'Invalid or missing token', realm = 'api', } = options;
149
+ const prefixLower = prefix.toLowerCase();
150
+ return async (c, next) => {
151
+ let token;
152
+ // Try header first
153
+ const authHeader = c.req.header(headerName);
154
+ if (authHeader) {
155
+ const headerLower = authHeader.toLowerCase();
156
+ if (headerLower.startsWith(prefixLower + ' ')) {
157
+ token = authHeader.slice(prefix.length + 1).trim();
158
+ }
159
+ else if (!prefix) {
160
+ // No prefix required
161
+ token = authHeader.trim();
162
+ }
163
+ }
164
+ // Try query param if configured and no token from header
165
+ if (!token && queryParam) {
166
+ const url = new URL(c.req.url);
167
+ token = url.searchParams.get(queryParam) || undefined;
168
+ }
169
+ if (!token) {
170
+ return createBearerUnauthorizedResponse(realm, errorMessage);
171
+ }
172
+ // Verify token
173
+ const result = await verifyToken(token);
174
+ if (result === null || result === undefined) {
175
+ return createBearerUnauthorizedResponse(realm, errorMessage);
176
+ }
177
+ // Store verified token data in context
178
+ c.set(contextKey, result);
179
+ await next();
180
+ };
181
+ }
182
+ // ─────────────────────────────────────────────────────────────────────────────
183
+ // Cookie Session Middleware
184
+ // ─────────────────────────────────────────────────────────────────────────────
185
+ /**
186
+ * Create Cookie Session middleware
187
+ *
188
+ * Provides session management via signed cookies.
189
+ *
190
+ * @param options - Session configuration
191
+ * @returns Middleware function
192
+ *
193
+ * @example
194
+ * app.use('*', cookieSession({
195
+ * secret: process.env.SESSION_SECRET!,
196
+ * maxAge: 60 * 60 * 24 * 7 // 1 week
197
+ * }))
198
+ *
199
+ * // In handler
200
+ * app.post('/login', async (c) => {
201
+ * const session = c.get('session') as SessionManager
202
+ * session.set('userId', user.id)
203
+ * return c.json({ success: true })
204
+ * })
205
+ *
206
+ * app.get('/profile', async (c) => {
207
+ * const session = c.get('session') as SessionManager
208
+ * const userId = session.get('userId')
209
+ * if (!userId) return c.json({ error: 'Not logged in' }, 401)
210
+ * // ...
211
+ * })
212
+ */
213
+ export function cookieSession(options) {
214
+ const { secret, cookieName = 'session', maxAge = 86400, path = '/', domain, secure = process.env.NODE_ENV === 'production', httpOnly = true, sameSite = 'Lax', contextKey = 'session', rolling = false, } = options;
215
+ return async (c, next) => {
216
+ // Load existing session from cookie
217
+ let sessionData = null;
218
+ const cookieCtx = toCookieContext(c);
219
+ const existingCookie = await getSignedCookie(cookieCtx, secret, cookieName);
220
+ if (existingCookie) {
221
+ try {
222
+ sessionData = JSON.parse(existingCookie);
223
+ // Check expiration
224
+ if (sessionData && sessionData.expiresAt < Date.now()) {
225
+ sessionData = null;
226
+ }
227
+ }
228
+ catch {
229
+ sessionData = null;
230
+ }
231
+ }
232
+ // Create new session if none exists
233
+ if (!sessionData) {
234
+ sessionData = {
235
+ id: generateSessionId(),
236
+ data: {},
237
+ createdAt: Date.now(),
238
+ expiresAt: Date.now() + maxAge * 1000,
239
+ };
240
+ }
241
+ // Track modifications
242
+ let modified = false;
243
+ let destroyed = false;
244
+ let regenerated = false;
245
+ let currentData = { ...sessionData.data };
246
+ let currentId = sessionData.id;
247
+ // Create session manager
248
+ const manager = {
249
+ get(key) {
250
+ return currentData[key];
251
+ },
252
+ set(key, value) {
253
+ currentData[key] = value;
254
+ modified = true;
255
+ },
256
+ delete(key) {
257
+ if (key in currentData) {
258
+ delete currentData[key];
259
+ modified = true;
260
+ }
261
+ },
262
+ clear() {
263
+ currentData = {};
264
+ modified = true;
265
+ },
266
+ destroy() {
267
+ destroyed = true;
268
+ modified = true;
269
+ },
270
+ regenerate() {
271
+ currentId = generateSessionId();
272
+ regenerated = true;
273
+ modified = true;
274
+ },
275
+ all() {
276
+ return { ...currentData };
277
+ },
278
+ has(key) {
279
+ return key in currentData;
280
+ },
281
+ get id() {
282
+ return currentId;
283
+ },
284
+ get modified() {
285
+ return modified;
286
+ },
287
+ };
288
+ // Store session manager in context
289
+ c.set(contextKey, manager);
290
+ // Process request
291
+ await next();
292
+ // Save session after request
293
+ if (destroyed) {
294
+ // Delete cookie
295
+ deleteCookie(cookieCtx, cookieName, { path, domain });
296
+ }
297
+ else if (modified || rolling) {
298
+ // Update session cookie
299
+ const newSession = {
300
+ id: currentId,
301
+ data: currentData,
302
+ createdAt: regenerated ? Date.now() : sessionData.createdAt,
303
+ expiresAt: Date.now() + maxAge * 1000,
304
+ };
305
+ await setSignedCookie(cookieCtx, cookieName, JSON.stringify(newSession), secret, {
306
+ path,
307
+ domain,
308
+ secure,
309
+ httpOnly,
310
+ sameSite,
311
+ maxAge,
312
+ });
313
+ }
314
+ };
315
+ }
316
+ /**
317
+ * Create composite authentication middleware
318
+ *
319
+ * Combines multiple auth drivers with configurable strategies.
320
+ *
321
+ * @param options - Composite auth configuration
322
+ * @returns Middleware function
323
+ *
324
+ * @example
325
+ * // Accept either API key OR JWT token
326
+ * app.use('/api/*', compositeAuth({
327
+ * drivers: [
328
+ * bearerAuth({ verifyToken: verifyJWT }),
329
+ * bearerAuth({ prefix: 'ApiKey', verifyToken: verifyApiKey })
330
+ * ],
331
+ * strategy: 'any' // First success wins
332
+ * }))
333
+ *
334
+ * @example
335
+ * // Require both session AND 2FA token
336
+ * app.use('/sensitive/*', compositeAuth({
337
+ * drivers: [
338
+ * cookieSession({ secret }),
339
+ * bearerAuth({ headerName: 'x-2fa-token', verifyToken: verify2FA })
340
+ * ],
341
+ * strategy: 'all' // Both must pass
342
+ * }))
343
+ *
344
+ * @example
345
+ * // Priority: try JWT first, fall back to API key
346
+ * app.use('/api/*', compositeAuth({
347
+ * drivers: [
348
+ * bearerAuth({ verifyToken: verifyJWT }),
349
+ * bearerAuth({ prefix: 'ApiKey', verifyToken: verifyApiKey })
350
+ * ],
351
+ * strategy: 'priority'
352
+ * }))
353
+ */
354
+ export function compositeAuth(options) {
355
+ const { drivers, strategy = 'any', errorMessage = 'Authentication failed', realm = 'api', } = options;
356
+ if (drivers.length === 0) {
357
+ throw new Error('compositeAuth requires at least one driver');
358
+ }
359
+ // Single driver - just return it
360
+ if (drivers.length === 1) {
361
+ return drivers[0];
362
+ }
363
+ return async (c, next) => {
364
+ switch (strategy) {
365
+ case 'any':
366
+ return handleAnyStrategy(c, next, drivers, realm, errorMessage);
367
+ case 'all':
368
+ return handleAllStrategy(c, next, drivers, realm, errorMessage);
369
+ case 'priority':
370
+ return handlePriorityStrategy(c, next, drivers, realm, errorMessage);
371
+ default:
372
+ throw new Error(`Unknown composite auth strategy: ${strategy}`);
373
+ }
374
+ };
375
+ }
376
+ /**
377
+ * ANY strategy: First successful auth wins
378
+ * Tries each driver until one succeeds (calls next)
379
+ */
380
+ async function handleAnyStrategy(c, next, drivers, realm, errorMessage) {
381
+ const errors = [];
382
+ for (const driver of drivers) {
383
+ let succeeded = false;
384
+ let driverResponse = undefined;
385
+ // Create a mock next that tracks if auth succeeded
386
+ const mockNext = async () => {
387
+ succeeded = true;
388
+ };
389
+ try {
390
+ driverResponse = await driver(c, mockNext);
391
+ if (succeeded) {
392
+ // This driver succeeded, now call the real next
393
+ await next();
394
+ return;
395
+ }
396
+ // Driver returned a response (likely 401)
397
+ if (driverResponse instanceof Response) {
398
+ // Try to extract error message
399
+ try {
400
+ const body = await driverResponse.clone().json();
401
+ if (body?.error?.message) {
402
+ errors.push(body.error.message);
403
+ }
404
+ }
405
+ catch {
406
+ errors.push(`Auth method ${drivers.indexOf(driver) + 1} failed`);
407
+ }
408
+ }
409
+ }
410
+ catch (err) {
411
+ errors.push(err.message || 'Unknown auth error');
412
+ }
413
+ }
414
+ // All drivers failed
415
+ return createCompositeUnauthorizedResponse(realm, errorMessage, errors);
416
+ }
417
+ /**
418
+ * ALL strategy: All auth methods must pass
419
+ * All drivers must call next (success)
420
+ */
421
+ async function handleAllStrategy(c, next, drivers, realm, errorMessage) {
422
+ for (const driver of drivers) {
423
+ let succeeded = false;
424
+ let driverResponse = undefined;
425
+ const mockNext = async () => {
426
+ succeeded = true;
427
+ };
428
+ try {
429
+ driverResponse = await driver(c, mockNext);
430
+ if (!succeeded) {
431
+ // This driver failed - return its response or a generic error
432
+ if (driverResponse instanceof Response) {
433
+ return driverResponse;
434
+ }
435
+ return createCompositeUnauthorizedResponse(realm, errorMessage, []);
436
+ }
437
+ }
438
+ catch (err) {
439
+ return createCompositeUnauthorizedResponse(realm, err.message || errorMessage, []);
440
+ }
441
+ }
442
+ // All drivers succeeded
443
+ await next();
444
+ }
445
+ /**
446
+ * PRIORITY strategy: Try in order, first success or non-401 response wins
447
+ * Similar to 'any' but preserves driver order importance
448
+ */
449
+ async function handlePriorityStrategy(c, next, drivers, realm, errorMessage) {
450
+ let lastResponse;
451
+ for (const driver of drivers) {
452
+ let succeeded = false;
453
+ let driverResponse = undefined;
454
+ const mockNext = async () => {
455
+ succeeded = true;
456
+ };
457
+ try {
458
+ driverResponse = await driver(c, mockNext);
459
+ if (succeeded) {
460
+ // This driver succeeded
461
+ await next();
462
+ return;
463
+ }
464
+ // Check if it's a 401 (keep trying) or other error (stop)
465
+ if (driverResponse instanceof Response) {
466
+ if (driverResponse.status !== 401) {
467
+ // Non-401 error - return immediately
468
+ return driverResponse;
469
+ }
470
+ lastResponse = driverResponse;
471
+ }
472
+ }
473
+ catch (err) {
474
+ // Exception - return error
475
+ return createCompositeUnauthorizedResponse(realm, err.message || errorMessage, []);
476
+ }
477
+ }
478
+ // All drivers returned 401 - return the last one or generic error
479
+ return lastResponse || createCompositeUnauthorizedResponse(realm, errorMessage, []);
480
+ }
481
+ /**
482
+ * Create 401 Unauthorized response for composite auth
483
+ */
484
+ function createCompositeUnauthorizedResponse(realm, message, details) {
485
+ return new Response(JSON.stringify({
486
+ success: false,
487
+ error: {
488
+ message,
489
+ code: 'UNAUTHORIZED',
490
+ ...(details.length > 0 ? { details } : {}),
491
+ },
492
+ }), {
493
+ status: 401,
494
+ headers: {
495
+ 'Content-Type': 'application/json',
496
+ 'WWW-Authenticate': `Bearer realm="${realm}"`,
497
+ },
498
+ });
499
+ }
500
+ // ─────────────────────────────────────────────────────────────────────────────
501
+ // Helper Functions
502
+ // ─────────────────────────────────────────────────────────────────────────────
503
+ /**
504
+ * Create 401 Unauthorized response for Basic Auth
505
+ */
506
+ function createUnauthorizedResponse(realm, message) {
507
+ return new Response(JSON.stringify({
508
+ success: false,
509
+ error: {
510
+ message,
511
+ code: 'UNAUTHORIZED',
512
+ },
513
+ }), {
514
+ status: 401,
515
+ headers: {
516
+ 'Content-Type': 'application/json',
517
+ 'WWW-Authenticate': `Basic realm="${realm}", charset="UTF-8"`,
518
+ },
519
+ });
520
+ }
521
+ /**
522
+ * Create 401 Unauthorized response for Bearer Auth
523
+ */
524
+ function createBearerUnauthorizedResponse(realm, message) {
525
+ return new Response(JSON.stringify({
526
+ success: false,
527
+ error: {
528
+ message,
529
+ code: 'UNAUTHORIZED',
530
+ },
531
+ }), {
532
+ status: 401,
533
+ headers: {
534
+ 'Content-Type': 'application/json',
535
+ 'WWW-Authenticate': `Bearer realm="${realm}"`,
536
+ },
537
+ });
538
+ }
539
+ /**
540
+ * Timing-safe string comparison
541
+ */
542
+ function timingSafeEqual(a, b) {
543
+ if (a.length !== b.length) {
544
+ // Compare against same-length string to maintain constant time
545
+ b = a;
546
+ }
547
+ let result = a.length === b.length ? 0 : 1;
548
+ for (let i = 0; i < a.length; i++) {
549
+ result |= a.charCodeAt(i) ^ b.charCodeAt(i);
550
+ }
551
+ return result === 0;
552
+ }
553
+ /**
554
+ * Generate a random session ID
555
+ */
556
+ function generateSessionId() {
557
+ const bytes = new Uint8Array(24);
558
+ crypto.getRandomValues(bytes);
559
+ return Array.from(bytes)
560
+ .map((b) => b.toString(16).padStart(2, '0'))
561
+ .join('');
562
+ }
563
+ /**
564
+ * Create path-based authentication middleware
565
+ *
566
+ * Routes requests to different auth middlewares based on URL path.
567
+ *
568
+ * @param options - Path auth configuration
569
+ * @returns Middleware function
570
+ *
571
+ * @example
572
+ * app.use(pathAuth({
573
+ * rules: [
574
+ * { path: '/public/*', auth: null }, // No auth
575
+ * { path: '/admin/*', auth: basicAuth({ username: 'admin', password: 'secret' }) },
576
+ * { path: '/api/*', auth: bearerAuth({ verifyToken }) },
577
+ * ],
578
+ * defaultAuth: bearerAuth({ verifyToken }) // Default for unmatched paths
579
+ * }))
580
+ */
581
+ export function pathAuth(options) {
582
+ const { rules, defaultAuth, errorMessage } = options;
583
+ // Compile path patterns to regexes for efficient matching
584
+ const compiledRules = rules.map(rule => ({
585
+ pattern: compilePathPattern(rule.path),
586
+ auth: rule.auth,
587
+ }));
588
+ return async (c, next) => {
589
+ const pathname = new URL(c.req.url).pathname;
590
+ // Find first matching rule
591
+ for (const rule of compiledRules) {
592
+ if (rule.pattern.test(pathname)) {
593
+ if (rule.auth === null) {
594
+ // Public route - no auth required
595
+ await next();
596
+ return;
597
+ }
598
+ // Apply auth middleware
599
+ return rule.auth(c, next);
600
+ }
601
+ }
602
+ // No rule matched - use default or pass through
603
+ if (defaultAuth !== undefined) {
604
+ if (defaultAuth === null) {
605
+ await next();
606
+ return;
607
+ }
608
+ return defaultAuth(c, next);
609
+ }
610
+ // No default - pass through
611
+ await next();
612
+ };
613
+ }
614
+ /**
615
+ * Create path + method based authentication middleware
616
+ *
617
+ * Routes requests to different auth middlewares based on URL path AND HTTP method.
618
+ * More granular than pathAuth - allows different auth for GET vs POST on same path.
619
+ *
620
+ * @param options - Path rules configuration
621
+ * @returns Middleware function
622
+ *
623
+ * @example
624
+ * app.use(pathRules({
625
+ * rules: [
626
+ * // Public read, auth for write
627
+ * { path: '/api/posts', method: 'GET', auth: null },
628
+ * { path: '/api/posts', method: ['POST', 'PUT', 'DELETE'], auth: bearerAuth({ verifyToken }) },
629
+ *
630
+ * // All methods on admin require auth
631
+ * { path: '/admin/*', method: '*', auth: basicAuth({ username, password }) },
632
+ * ]
633
+ * }))
634
+ */
635
+ export function pathRules(options) {
636
+ const { rules, defaultAuth } = options;
637
+ // Compile rules
638
+ const compiledRules = rules.map(rule => ({
639
+ pattern: compilePathPattern(rule.path),
640
+ methods: Array.isArray(rule.method) ? rule.method : [rule.method],
641
+ auth: rule.auth,
642
+ }));
643
+ return async (c, next) => {
644
+ const pathname = new URL(c.req.url).pathname;
645
+ const method = c.req.method.toUpperCase();
646
+ // Find first matching rule
647
+ for (const rule of compiledRules) {
648
+ const pathMatches = rule.pattern.test(pathname);
649
+ const methodMatches = rule.methods.includes('*') || rule.methods.includes(method);
650
+ if (pathMatches && methodMatches) {
651
+ if (rule.auth === null) {
652
+ await next();
653
+ return;
654
+ }
655
+ return rule.auth(c, next);
656
+ }
657
+ }
658
+ // No rule matched
659
+ if (defaultAuth !== undefined) {
660
+ if (defaultAuth === null) {
661
+ await next();
662
+ return;
663
+ }
664
+ return defaultAuth(c, next);
665
+ }
666
+ await next();
667
+ };
668
+ }
669
+ /**
670
+ * Create a login throttle manager
671
+ *
672
+ * Tracks failed login attempts and blocks keys (IPs/users) after too many failures.
673
+ *
674
+ * @param options - Throttle configuration
675
+ * @returns LoginThrottleManager
676
+ *
677
+ * @example
678
+ * const throttle = createLoginThrottle({
679
+ * maxAttempts: 5,
680
+ * windowMs: 15 * 60 * 1000, // 15 minutes
681
+ * blockDurationMs: 60 * 60 * 1000, // 1 hour
682
+ * onBlock: (ip) => console.log(`Blocked IP: ${ip}`)
683
+ * })
684
+ *
685
+ * app.post('/login', async (c) => {
686
+ * const ip = c.req.header('x-forwarded-for') || 'unknown'
687
+ *
688
+ * if (throttle.isBlocked(ip)) {
689
+ * const remaining = throttle.getBlockTimeRemaining(ip)
690
+ * return c.json({
691
+ * error: 'Too many failed attempts',
692
+ * retryAfterMs: remaining
693
+ * }, 429)
694
+ * }
695
+ *
696
+ * const valid = await verifyCredentials(username, password)
697
+ * if (!valid) {
698
+ * const blocked = throttle.recordFailure(ip)
699
+ * if (blocked) {
700
+ * return c.json({ error: 'Account locked due to too many attempts' }, 429)
701
+ * }
702
+ * return c.json({ error: 'Invalid credentials' }, 401)
703
+ * }
704
+ *
705
+ * throttle.reset(ip) // Clear on success
706
+ * // ... create session
707
+ * })
708
+ */
709
+ export function createLoginThrottle(options = {}) {
710
+ const { maxAttempts = 5, windowMs = 15 * 60 * 1000, blockDurationMs = 60 * 60 * 1000, onBlock, onBlockedAttempt, } = options;
711
+ const attempts = new Map();
712
+ // Cleanup interval (run every 5 minutes)
713
+ const cleanupInterval = setInterval(() => {
714
+ cleanup();
715
+ }, 5 * 60 * 1000);
716
+ // Allow cleanup to be stopped
717
+ if (cleanupInterval.unref) {
718
+ cleanupInterval.unref();
719
+ }
720
+ function cleanup() {
721
+ const now = Date.now();
722
+ for (const [key, record] of attempts) {
723
+ // Remove if window expired and not blocked
724
+ const windowExpired = now - record.firstAttemptAt > windowMs;
725
+ const blockExpired = !record.blockedUntil || record.blockedUntil < now;
726
+ if (windowExpired && blockExpired) {
727
+ attempts.delete(key);
728
+ }
729
+ }
730
+ }
731
+ function isBlocked(key) {
732
+ const record = attempts.get(key);
733
+ if (!record?.blockedUntil)
734
+ return false;
735
+ if (record.blockedUntil < Date.now()) {
736
+ // Block expired
737
+ attempts.delete(key);
738
+ return false;
739
+ }
740
+ return true;
741
+ }
742
+ function getBlockTimeRemaining(key) {
743
+ const record = attempts.get(key);
744
+ if (!record?.blockedUntil)
745
+ return 0;
746
+ const remaining = record.blockedUntil - Date.now();
747
+ return remaining > 0 ? remaining : 0;
748
+ }
749
+ function recordFailure(key) {
750
+ const now = Date.now();
751
+ let record = attempts.get(key);
752
+ if (!record) {
753
+ record = { count: 0, firstAttemptAt: now };
754
+ attempts.set(key, record);
755
+ }
756
+ // Check if window expired - reset if so
757
+ if (now - record.firstAttemptAt > windowMs) {
758
+ record.count = 0;
759
+ record.firstAttemptAt = now;
760
+ record.blockedUntil = undefined;
761
+ }
762
+ record.count++;
763
+ // Check if should block
764
+ if (record.count >= maxAttempts) {
765
+ record.blockedUntil = now + blockDurationMs;
766
+ onBlock?.(key, record.count);
767
+ return true;
768
+ }
769
+ return false;
770
+ }
771
+ function reset(key) {
772
+ attempts.delete(key);
773
+ }
774
+ function getAttempts(key) {
775
+ const record = attempts.get(key);
776
+ if (!record)
777
+ return 0;
778
+ // Check if window expired
779
+ if (Date.now() - record.firstAttemptAt > windowMs) {
780
+ attempts.delete(key);
781
+ return 0;
782
+ }
783
+ return record.count;
784
+ }
785
+ function block(key, durationMs) {
786
+ const duration = durationMs ?? blockDurationMs;
787
+ const record = attempts.get(key) || { count: maxAttempts, firstAttemptAt: Date.now() };
788
+ record.blockedUntil = Date.now() + duration;
789
+ attempts.set(key, record);
790
+ }
791
+ function unblock(key) {
792
+ const record = attempts.get(key);
793
+ if (record) {
794
+ record.blockedUntil = undefined;
795
+ record.count = 0;
796
+ }
797
+ }
798
+ function getStats() {
799
+ let blockedKeys = 0;
800
+ const now = Date.now();
801
+ for (const record of attempts.values()) {
802
+ if (record.blockedUntil && record.blockedUntil > now) {
803
+ blockedKeys++;
804
+ }
805
+ }
806
+ return { trackedKeys: attempts.size, blockedKeys };
807
+ }
808
+ return {
809
+ isBlocked,
810
+ getBlockTimeRemaining,
811
+ recordFailure,
812
+ reset,
813
+ getAttempts,
814
+ block,
815
+ unblock,
816
+ cleanup,
817
+ getStats,
818
+ };
819
+ }
820
+ /**
821
+ * Create login throttle middleware
822
+ *
823
+ * Automatically blocks requests from IPs with too many failures.
824
+ * Use with a login endpoint that calls recordFailure on bad credentials.
825
+ *
826
+ * @param throttle - Login throttle manager
827
+ * @param keyGenerator - Function to extract key from request (default: IP address)
828
+ * @returns Middleware function
829
+ *
830
+ * @example
831
+ * const throttle = createLoginThrottle({ maxAttempts: 5 })
832
+ *
833
+ * // Apply middleware to login route
834
+ * app.post('/login',
835
+ * loginThrottleMiddleware(throttle),
836
+ * async (c) => {
837
+ * // ... verify credentials
838
+ * // On failure: throttle.recordFailure(key)
839
+ * // On success: throttle.reset(key)
840
+ * }
841
+ * )
842
+ */
843
+ export function loginThrottleMiddleware(throttle, keyGenerator) {
844
+ const getKey = keyGenerator ?? ((c) => {
845
+ // Try common headers for real IP behind proxy
846
+ return (c.req.header('x-forwarded-for')?.split(',')[0]?.trim() ||
847
+ c.req.header('x-real-ip') ||
848
+ 'unknown');
849
+ });
850
+ return async (c, next) => {
851
+ const key = getKey(c);
852
+ if (throttle.isBlocked(key)) {
853
+ const remaining = throttle.getBlockTimeRemaining(key);
854
+ return new Response(JSON.stringify({
855
+ success: false,
856
+ error: {
857
+ code: 'TOO_MANY_REQUESTS',
858
+ message: 'Too many failed login attempts. Please try again later.',
859
+ retryAfterMs: remaining,
860
+ },
861
+ }), {
862
+ status: 429,
863
+ headers: {
864
+ 'Content-Type': 'application/json',
865
+ 'Retry-After': Math.ceil(remaining / 1000).toString(),
866
+ },
867
+ });
868
+ }
869
+ // Store key in context for handler to use
870
+ c.set('throttleKey', key);
871
+ await next();
872
+ };
873
+ }
874
+ // ─────────────────────────────────────────────────────────────────────────────
875
+ // Helper Functions
876
+ // ─────────────────────────────────────────────────────────────────────────────
877
+ /**
878
+ * Compile a path pattern to a regex
879
+ * Supports:
880
+ * - Wildcards: /api/* matches /api/anything
881
+ * - Parameters: /users/:id matches /users/123
882
+ * - Exact match: /login matches only /login
883
+ */
884
+ function compilePathPattern(pattern) {
885
+ // Escape special regex chars except * and :
886
+ let regex = pattern
887
+ .replace(/[.+?^${}()|[\]\\]/g, '\\$&')
888
+ // Convert :param to match any segment
889
+ .replace(/:[^/]+/g, '[^/]+')
890
+ // Convert * to match anything
891
+ .replace(/\*/g, '.*');
892
+ // Ensure exact match at start
893
+ regex = '^' + regex;
894
+ // Handle trailing slash optionally
895
+ if (!regex.endsWith('.*')) {
896
+ regex += '/?$';
897
+ }
898
+ return new RegExp(regex);
899
+ }
900
+ // ─────────────────────────────────────────────────────────────────────────────
901
+ // Exports
902
+ // ─────────────────────────────────────────────────────────────────────────────
903
+ export default {
904
+ basicAuth,
905
+ bearerAuth,
906
+ cookieSession,
907
+ compositeAuth,
908
+ pathAuth,
909
+ pathRules,
910
+ createLoginThrottle,
911
+ loginThrottleMiddleware,
912
+ };
913
+ //# sourceMappingURL=auth.js.map