raffel 0.2.3 → 1.0.0-next.f81d4db

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 (590) hide show
  1. package/dist/adapters/grpc.d.ts.map +1 -1
  2. package/dist/adapters/grpc.js +1 -15
  3. package/dist/adapters/grpc.js.map +1 -1
  4. package/dist/adapters/http.d.ts +6 -0
  5. package/dist/adapters/http.d.ts.map +1 -1
  6. package/dist/adapters/http.js +53 -86
  7. package/dist/adapters/http.js.map +1 -1
  8. package/dist/adapters/index.d.ts +0 -2
  9. package/dist/adapters/index.d.ts.map +1 -1
  10. package/dist/adapters/index.js +0 -2
  11. package/dist/adapters/index.js.map +1 -1
  12. package/dist/adapters/tcp.d.ts +16 -0
  13. package/dist/adapters/tcp.d.ts.map +1 -1
  14. package/dist/adapters/tcp.js +85 -34
  15. package/dist/adapters/tcp.js.map +1 -1
  16. package/dist/adapters/websocket.d.ts.map +1 -1
  17. package/dist/adapters/websocket.js +1 -14
  18. package/dist/adapters/websocket.js.map +1 -1
  19. package/dist/cache/drivers/index.d.ts +0 -1
  20. package/dist/cache/drivers/index.d.ts.map +1 -1
  21. package/dist/cache/drivers/index.js +0 -1
  22. package/dist/cache/drivers/index.js.map +1 -1
  23. package/dist/cache/factory.d.ts +2 -9
  24. package/dist/cache/factory.d.ts.map +1 -1
  25. package/dist/cache/factory.js +1 -19
  26. package/dist/cache/factory.js.map +1 -1
  27. package/dist/cache/index.d.ts +2 -7
  28. package/dist/cache/index.d.ts.map +1 -1
  29. package/dist/cache/index.js +1 -6
  30. package/dist/cache/index.js.map +1 -1
  31. package/dist/cache/types.d.ts +1 -32
  32. package/dist/cache/types.d.ts.map +1 -1
  33. package/dist/core/event-delivery.d.ts.map +1 -1
  34. package/dist/core/event-delivery.js +5 -3
  35. package/dist/core/event-delivery.js.map +1 -1
  36. package/dist/core/index.d.ts +1 -1
  37. package/dist/core/index.d.ts.map +1 -1
  38. package/dist/core/registry.d.ts +3 -3
  39. package/dist/core/registry.d.ts.map +1 -1
  40. package/dist/core/registry.js +30 -8
  41. package/dist/core/registry.js.map +1 -1
  42. package/dist/core/router.d.ts.map +1 -1
  43. package/dist/core/router.js +5 -4
  44. package/dist/core/router.js.map +1 -1
  45. package/dist/docs/generators/code-samples.d.ts +32 -0
  46. package/dist/docs/generators/code-samples.d.ts.map +1 -0
  47. package/dist/docs/generators/code-samples.js +322 -0
  48. package/dist/docs/generators/code-samples.js.map +1 -0
  49. package/dist/docs/generators/errors-types.d.ts +2 -2
  50. package/dist/docs/generators/errors-types.js +2 -2
  51. package/dist/docs/generators/http-generator.d.ts +10 -0
  52. package/dist/docs/generators/http-generator.d.ts.map +1 -1
  53. package/dist/docs/generators/http-generator.js +100 -3
  54. package/dist/docs/generators/http-generator.js.map +1 -1
  55. package/dist/docs/generators/usd-generator.d.ts +31 -1
  56. package/dist/docs/generators/usd-generator.d.ts.map +1 -1
  57. package/dist/docs/generators/usd-generator.js +19 -1
  58. package/dist/docs/generators/usd-generator.js.map +1 -1
  59. package/dist/docs/generators/websocket-generator.d.ts.map +1 -1
  60. package/dist/docs/generators/websocket-generator.js +6 -4
  61. package/dist/docs/generators/websocket-generator.js.map +1 -1
  62. package/dist/docs/ui/html-builder.d.ts.map +1 -1
  63. package/dist/docs/ui/html-builder.js +260 -54
  64. package/dist/docs/ui/html-builder.js.map +1 -1
  65. package/dist/docs/ui/styles.d.ts.map +1 -1
  66. package/dist/docs/ui/styles.js +240 -30
  67. package/dist/docs/ui/styles.js.map +1 -1
  68. package/dist/docs/ui/types.d.ts +15 -1
  69. package/dist/docs/ui/types.d.ts.map +1 -1
  70. package/dist/docs/usd-middleware.d.ts +32 -7
  71. package/dist/docs/usd-middleware.d.ts.map +1 -1
  72. package/dist/docs/usd-middleware.js +5 -1
  73. package/dist/docs/usd-middleware.js.map +1 -1
  74. package/dist/dx/index.d.ts +2 -0
  75. package/dist/dx/index.d.ts.map +1 -1
  76. package/dist/dx/index.js +1 -0
  77. package/dist/dx/index.js.map +1 -1
  78. package/dist/dx/logging/index.d.ts.map +1 -1
  79. package/dist/dx/logging/index.js +5 -3
  80. package/dist/dx/logging/index.js.map +1 -1
  81. package/dist/dx/scenarios.d.ts +26 -0
  82. package/dist/dx/scenarios.d.ts.map +1 -0
  83. package/dist/dx/scenarios.js +109 -0
  84. package/dist/dx/scenarios.js.map +1 -0
  85. package/dist/errors/codes.d.ts +1 -1
  86. package/dist/errors/codes.js +1 -1
  87. package/dist/graphql/adapter.js +1 -1
  88. package/dist/http/index.d.ts +2 -0
  89. package/dist/http/index.d.ts.map +1 -1
  90. package/dist/http/index.js +4 -0
  91. package/dist/http/index.js.map +1 -1
  92. package/dist/http/openapi-ui.d.ts +174 -0
  93. package/dist/http/openapi-ui.d.ts.map +1 -0
  94. package/dist/http/openapi-ui.js +221 -0
  95. package/dist/http/openapi-ui.js.map +1 -0
  96. package/dist/http/serve.d.ts +14 -0
  97. package/dist/http/serve.d.ts.map +1 -1
  98. package/dist/http/serve.js +8 -1
  99. package/dist/http/serve.js.map +1 -1
  100. package/dist/index.d.ts +17 -10
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +12 -6
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp/cli.d.ts +2 -1
  105. package/dist/mcp/cli.d.ts.map +1 -1
  106. package/dist/mcp/cli.js +30 -7
  107. package/dist/mcp/cli.js.map +1 -1
  108. package/dist/mcp/docs/adapters.d.ts.map +1 -1
  109. package/dist/mcp/docs/adapters.js +1 -117
  110. package/dist/mcp/docs/adapters.js.map +1 -1
  111. package/dist/mcp/docs/index.d.ts +0 -1
  112. package/dist/mcp/docs/index.d.ts.map +1 -1
  113. package/dist/mcp/docs/index.js +0 -1
  114. package/dist/mcp/docs/index.js.map +1 -1
  115. package/dist/mcp/docs/interceptors.d.ts.map +1 -1
  116. package/dist/mcp/docs/interceptors.js +272 -1
  117. package/dist/mcp/docs/interceptors.js.map +1 -1
  118. package/dist/mcp/docs/patterns.js +1 -1
  119. package/dist/mcp/prompts/index.d.ts.map +1 -1
  120. package/dist/mcp/prompts/index.js +147 -22
  121. package/dist/mcp/prompts/index.js.map +1 -1
  122. package/dist/mcp/resources/index.d.ts.map +1 -1
  123. package/dist/mcp/resources/index.js +508 -10
  124. package/dist/mcp/resources/index.js.map +1 -1
  125. package/dist/mcp/server.js +1 -1
  126. package/dist/mcp/server.js.map +1 -1
  127. package/dist/mcp/tools/definitions.d.ts +2 -0
  128. package/dist/mcp/tools/definitions.d.ts.map +1 -1
  129. package/dist/mcp/tools/definitions.js +149 -1
  130. package/dist/mcp/tools/definitions.js.map +1 -1
  131. package/dist/mcp/tools/handlers.d.ts.map +1 -1
  132. package/dist/mcp/tools/handlers.js +828 -44
  133. package/dist/mcp/tools/handlers.js.map +1 -1
  134. package/dist/mcp/types.d.ts +1 -1
  135. package/dist/mcp/types.d.ts.map +1 -1
  136. package/dist/metrics/interceptor.d.ts.map +1 -1
  137. package/dist/metrics/interceptor.js +10 -2
  138. package/dist/metrics/interceptor.js.map +1 -1
  139. package/dist/middleware/interceptors/cache.d.ts +1 -1
  140. package/dist/middleware/interceptors/cache.d.ts.map +1 -1
  141. package/dist/middleware/interceptors/cache.js +4 -2
  142. package/dist/middleware/interceptors/cache.js.map +1 -1
  143. package/dist/middleware/interceptors/envelope.d.ts.map +1 -1
  144. package/dist/middleware/interceptors/envelope.js +12 -14
  145. package/dist/middleware/interceptors/envelope.js.map +1 -1
  146. package/dist/middleware/interceptors/logging.d.ts.map +1 -1
  147. package/dist/middleware/interceptors/logging.js +11 -6
  148. package/dist/middleware/interceptors/logging.js.map +1 -1
  149. package/dist/middleware/session/drivers/memory.d.ts +36 -0
  150. package/dist/middleware/session/drivers/memory.d.ts.map +1 -0
  151. package/dist/middleware/session/drivers/memory.js +82 -0
  152. package/dist/middleware/session/drivers/memory.js.map +1 -0
  153. package/dist/middleware/session/drivers/redis.d.ts +58 -0
  154. package/dist/middleware/session/drivers/redis.d.ts.map +1 -0
  155. package/dist/middleware/session/drivers/redis.js +70 -0
  156. package/dist/middleware/session/drivers/redis.js.map +1 -0
  157. package/dist/middleware/session/drivers/s3db.d.ts +65 -0
  158. package/dist/middleware/session/drivers/s3db.d.ts.map +1 -0
  159. package/dist/middleware/session/drivers/s3db.js +98 -0
  160. package/dist/middleware/session/drivers/s3db.js.map +1 -0
  161. package/dist/middleware/session/index.d.ts +47 -0
  162. package/dist/middleware/session/index.d.ts.map +1 -0
  163. package/dist/middleware/session/index.js +46 -0
  164. package/dist/middleware/session/index.js.map +1 -0
  165. package/dist/middleware/session/interceptor.d.ts +42 -0
  166. package/dist/middleware/session/interceptor.d.ts.map +1 -0
  167. package/dist/middleware/session/interceptor.js +264 -0
  168. package/dist/middleware/session/interceptor.js.map +1 -0
  169. package/dist/middleware/session/types.d.ts +116 -0
  170. package/dist/middleware/session/types.d.ts.map +1 -0
  171. package/dist/middleware/session/types.js +9 -0
  172. package/dist/middleware/session/types.js.map +1 -0
  173. package/dist/proxy/connect-tunnel.d.ts +50 -0
  174. package/dist/proxy/connect-tunnel.d.ts.map +1 -0
  175. package/dist/proxy/connect-tunnel.js +163 -0
  176. package/dist/proxy/connect-tunnel.js.map +1 -0
  177. package/dist/proxy/http-forward.d.ts +48 -0
  178. package/dist/proxy/http-forward.d.ts.map +1 -0
  179. package/dist/proxy/http-forward.js +160 -0
  180. package/dist/proxy/http-forward.js.map +1 -0
  181. package/dist/proxy/index.d.ts +19 -0
  182. package/dist/proxy/index.d.ts.map +1 -0
  183. package/dist/proxy/index.js +14 -0
  184. package/dist/proxy/index.js.map +1 -0
  185. package/dist/proxy/socks5.d.ts +22 -0
  186. package/dist/proxy/socks5.d.ts.map +1 -0
  187. package/dist/proxy/socks5.js +307 -0
  188. package/dist/proxy/socks5.js.map +1 -0
  189. package/dist/proxy/transparent.d.ts +40 -0
  190. package/dist/proxy/transparent.d.ts.map +1 -0
  191. package/dist/proxy/transparent.js +144 -0
  192. package/dist/proxy/transparent.js.map +1 -0
  193. package/dist/proxy/types.d.ts +32 -0
  194. package/dist/proxy/types.d.ts.map +1 -0
  195. package/dist/proxy/types.js +5 -0
  196. package/dist/proxy/types.js.map +1 -0
  197. package/dist/proxy/utils/auth.d.ts +31 -0
  198. package/dist/proxy/utils/auth.d.ts.map +1 -0
  199. package/dist/proxy/utils/auth.js +69 -0
  200. package/dist/proxy/utils/auth.js.map +1 -0
  201. package/dist/proxy/utils/hop-headers.d.ts +13 -0
  202. package/dist/proxy/utils/hop-headers.d.ts.map +1 -0
  203. package/dist/proxy/utils/hop-headers.js +38 -0
  204. package/dist/proxy/utils/hop-headers.js.map +1 -0
  205. package/dist/proxy/utils/pipe.d.ts +22 -0
  206. package/dist/proxy/utils/pipe.d.ts.map +1 -0
  207. package/dist/proxy/utils/pipe.js +60 -0
  208. package/dist/proxy/utils/pipe.js.map +1 -0
  209. package/dist/rate-limit/factory.d.ts.map +1 -1
  210. package/dist/rate-limit/factory.js +30 -6
  211. package/dist/rate-limit/factory.js.map +1 -1
  212. package/dist/server/builder/config-preview.d.ts +34 -0
  213. package/dist/server/builder/config-preview.d.ts.map +1 -0
  214. package/dist/server/builder/config-preview.js +95 -0
  215. package/dist/server/builder/config-preview.js.map +1 -0
  216. package/dist/server/builder/lifecycle-utils.d.ts +11 -0
  217. package/dist/server/builder/lifecycle-utils.d.ts.map +1 -0
  218. package/dist/server/builder/lifecycle-utils.js +32 -0
  219. package/dist/server/builder/lifecycle-utils.js.map +1 -0
  220. package/dist/server/builder/lifecycle.d.ts +86 -0
  221. package/dist/server/builder/lifecycle.d.ts.map +1 -0
  222. package/dist/server/builder/lifecycle.js +738 -0
  223. package/dist/server/builder/lifecycle.js.map +1 -0
  224. package/dist/server/builder/single-port-utils.d.ts +27 -0
  225. package/dist/server/builder/single-port-utils.d.ts.map +1 -0
  226. package/dist/server/builder/single-port-utils.js +170 -0
  227. package/dist/server/builder/single-port-utils.js.map +1 -0
  228. package/dist/server/builder.d.ts.map +1 -1
  229. package/dist/server/builder.js +446 -601
  230. package/dist/server/builder.js.map +1 -1
  231. package/dist/server/discovery-bootstrap.d.ts +21 -0
  232. package/dist/server/discovery-bootstrap.d.ts.map +1 -0
  233. package/dist/server/discovery-bootstrap.js +39 -0
  234. package/dist/server/discovery-bootstrap.js.map +1 -0
  235. package/dist/server/errors.d.ts.map +1 -1
  236. package/dist/server/errors.js +1 -33
  237. package/dist/server/errors.js.map +1 -1
  238. package/dist/server/front-door.d.ts +34 -0
  239. package/dist/server/front-door.d.ts.map +1 -0
  240. package/dist/server/front-door.js +238 -0
  241. package/dist/server/front-door.js.map +1 -0
  242. package/dist/server/fs-routes/types.d.ts +6 -0
  243. package/dist/server/fs-routes/types.d.ts.map +1 -1
  244. package/dist/server/handler-builders.d.ts +22 -4
  245. package/dist/server/handler-builders.d.ts.map +1 -1
  246. package/dist/server/handler-builders.js +37 -14
  247. package/dist/server/handler-builders.js.map +1 -1
  248. package/dist/server/index.d.ts +4 -1
  249. package/dist/server/index.d.ts.map +1 -1
  250. package/dist/server/index.js +2 -0
  251. package/dist/server/index.js.map +1 -1
  252. package/dist/server/interceptor-utils.d.ts +8 -0
  253. package/dist/server/interceptor-utils.d.ts.map +1 -0
  254. package/dist/server/interceptor-utils.js +23 -0
  255. package/dist/server/interceptor-utils.js.map +1 -0
  256. package/dist/server/port-binding.d.ts +44 -0
  257. package/dist/server/port-binding.d.ts.map +1 -0
  258. package/dist/server/port-binding.js +94 -0
  259. package/dist/server/port-binding.js.map +1 -0
  260. package/dist/server/protocol-aliases.d.ts +56 -0
  261. package/dist/server/protocol-aliases.d.ts.map +1 -0
  262. package/dist/server/protocol-aliases.js +47 -0
  263. package/dist/server/protocol-aliases.js.map +1 -0
  264. package/dist/server/protocol-config.d.ts +17 -1
  265. package/dist/server/protocol-config.d.ts.map +1 -1
  266. package/dist/server/protocol-config.js +116 -9
  267. package/dist/server/protocol-config.js.map +1 -1
  268. package/dist/server/resource-builder.js +3 -3
  269. package/dist/server/resource-builder.js.map +1 -1
  270. package/dist/server/rest-middleware.d.ts.map +1 -1
  271. package/dist/server/rest-middleware.js +1 -15
  272. package/dist/server/rest-middleware.js.map +1 -1
  273. package/dist/server/router-module.d.ts.map +1 -1
  274. package/dist/server/router-module.js +22 -99
  275. package/dist/server/router-module.js.map +1 -1
  276. package/dist/server/shared-context.d.ts.map +1 -1
  277. package/dist/server/shared-context.js +3 -1
  278. package/dist/server/shared-context.js.map +1 -1
  279. package/dist/server/single-port/dispatcher.d.ts +10 -0
  280. package/dist/server/single-port/dispatcher.d.ts.map +1 -0
  281. package/dist/server/single-port/dispatcher.js +188 -0
  282. package/dist/server/single-port/dispatcher.js.map +1 -0
  283. package/dist/server/single-port/index.d.ts +4 -0
  284. package/dist/server/single-port/index.d.ts.map +1 -0
  285. package/dist/server/single-port/index.js +3 -0
  286. package/dist/server/single-port/index.js.map +1 -0
  287. package/dist/server/single-port/registry.d.ts +19 -0
  288. package/dist/server/single-port/registry.d.ts.map +1 -0
  289. package/dist/server/single-port/registry.js +24 -0
  290. package/dist/server/single-port/registry.js.map +1 -0
  291. package/dist/server/single-port/types.d.ts +46 -0
  292. package/dist/server/single-port/types.d.ts.map +1 -0
  293. package/dist/server/single-port/types.js +2 -0
  294. package/dist/server/single-port/types.js.map +1 -0
  295. package/dist/server/telemetry-bootstrap.d.ts +38 -0
  296. package/dist/server/telemetry-bootstrap.d.ts.map +1 -0
  297. package/dist/server/telemetry-bootstrap.js +115 -0
  298. package/dist/server/telemetry-bootstrap.js.map +1 -0
  299. package/dist/server/types.d.ts +422 -21
  300. package/dist/server/types.d.ts.map +1 -1
  301. package/dist/testing/echo-protection.d.ts +30 -0
  302. package/dist/testing/echo-protection.d.ts.map +1 -0
  303. package/dist/testing/echo-protection.js +158 -0
  304. package/dist/testing/echo-protection.js.map +1 -0
  305. package/dist/testing/index.d.ts +344 -0
  306. package/dist/testing/index.d.ts.map +1 -0
  307. package/dist/testing/index.js +1072 -0
  308. package/dist/testing/index.js.map +1 -0
  309. package/dist/testing/mock-dns-server.d.ts +31 -0
  310. package/dist/testing/mock-dns-server.d.ts.map +1 -0
  311. package/dist/testing/mock-dns-server.js +247 -0
  312. package/dist/testing/mock-dns-server.js.map +1 -0
  313. package/dist/testing/mock-hls-server.d.ts +85 -0
  314. package/dist/testing/mock-hls-server.d.ts.map +1 -0
  315. package/dist/testing/mock-hls-server.js +252 -0
  316. package/dist/testing/mock-hls-server.js.map +1 -0
  317. package/dist/testing/mock-proxy-server.d.ts +78 -0
  318. package/dist/testing/mock-proxy-server.d.ts.map +1 -0
  319. package/dist/testing/mock-proxy-server.js +277 -0
  320. package/dist/testing/mock-proxy-server.js.map +1 -0
  321. package/dist/testing/mock-sse-server.d.ts +56 -0
  322. package/dist/testing/mock-sse-server.d.ts.map +1 -0
  323. package/dist/testing/mock-sse-server.js +206 -0
  324. package/dist/testing/mock-sse-server.js.map +1 -0
  325. package/dist/testing/proxy-certs.d.ts +9 -0
  326. package/dist/testing/proxy-certs.d.ts.map +1 -0
  327. package/dist/testing/proxy-certs.js +2 -0
  328. package/dist/testing/proxy-certs.js.map +1 -0
  329. package/dist/testing/service-suite.d.ts +47 -0
  330. package/dist/testing/service-suite.d.ts.map +1 -0
  331. package/dist/testing/service-suite.js +82 -0
  332. package/dist/testing/service-suite.js.map +1 -0
  333. package/dist/testing/service-types.d.ts +32 -0
  334. package/dist/testing/service-types.d.ts.map +1 -0
  335. package/dist/testing/service-types.js +2 -0
  336. package/dist/testing/service-types.js.map +1 -0
  337. package/dist/ui/core/event-delivery.d.ts.map +1 -1
  338. package/dist/ui/core/index.d.ts +1 -1
  339. package/dist/ui/core/index.d.ts.map +1 -1
  340. package/dist/ui/core/registry.d.ts +3 -3
  341. package/dist/ui/core/registry.d.ts.map +1 -1
  342. package/dist/ui/core/router.d.ts.map +1 -1
  343. package/dist/ui/docs/generators/code-samples.d.ts +32 -0
  344. package/dist/ui/docs/generators/code-samples.d.ts.map +1 -0
  345. package/dist/ui/docs/generators/errors-types.d.ts +2 -2
  346. package/dist/ui/docs/generators/http-generator.d.ts +10 -0
  347. package/dist/ui/docs/generators/http-generator.d.ts.map +1 -1
  348. package/dist/ui/docs/generators/usd-generator.d.ts +31 -1
  349. package/dist/ui/docs/generators/usd-generator.d.ts.map +1 -1
  350. package/dist/ui/docs/generators/websocket-generator.d.ts.map +1 -1
  351. package/dist/ui/docs/ui/html-builder.d.ts.map +1 -1
  352. package/dist/ui/docs/ui/styles.d.ts.map +1 -1
  353. package/dist/ui/docs/ui/types.d.ts +15 -1
  354. package/dist/ui/docs/ui/types.d.ts.map +1 -1
  355. package/dist/ui/docs/usd-middleware.d.ts +32 -7
  356. package/dist/ui/docs/usd-middleware.d.ts.map +1 -1
  357. package/dist/ui/errors/codes.d.ts +1 -1
  358. package/dist/ui/server/fs-routes/types.d.ts +6 -0
  359. package/dist/ui/server/fs-routes/types.d.ts.map +1 -1
  360. package/dist/ui/usd/index.d.ts +1 -1
  361. package/dist/ui/usd/index.d.ts.map +1 -1
  362. package/dist/ui/usd/spec/types.d.ts +91 -0
  363. package/dist/ui/usd/spec/types.d.ts.map +1 -1
  364. package/dist/usd/index.d.ts +1 -1
  365. package/dist/usd/index.d.ts.map +1 -1
  366. package/dist/usd/index.js.map +1 -1
  367. package/dist/usd/spec/types.d.ts +91 -0
  368. package/dist/usd/spec/types.d.ts.map +1 -1
  369. package/dist/usd/spec/types.js.map +1 -1
  370. package/dist/utils/certs.d.ts +30 -0
  371. package/dist/utils/certs.d.ts.map +1 -0
  372. package/dist/utils/certs.js +230 -0
  373. package/dist/utils/certs.js.map +1 -0
  374. package/dist/utils/context-utils.d.ts +11 -0
  375. package/dist/utils/context-utils.d.ts.map +1 -0
  376. package/dist/utils/context-utils.js +24 -0
  377. package/dist/utils/context-utils.js.map +1 -0
  378. package/package.json +11 -2
  379. package/dist/adapters/grpc.int.test.d.ts +0 -5
  380. package/dist/adapters/grpc.int.test.d.ts.map +0 -1
  381. package/dist/adapters/grpc.int.test.js +0 -168
  382. package/dist/adapters/grpc.int.test.js.map +0 -1
  383. package/dist/adapters/http.int.test.d.ts +0 -5
  384. package/dist/adapters/http.int.test.d.ts.map +0 -1
  385. package/dist/adapters/http.int.test.js +0 -396
  386. package/dist/adapters/http.int.test.js.map +0 -1
  387. package/dist/adapters/jsonrpc.int.test.d.ts +0 -5
  388. package/dist/adapters/jsonrpc.int.test.d.ts.map +0 -1
  389. package/dist/adapters/jsonrpc.int.test.js +0 -640
  390. package/dist/adapters/jsonrpc.int.test.js.map +0 -1
  391. package/dist/adapters/s3db/adapter.d.ts +0 -105
  392. package/dist/adapters/s3db/adapter.d.ts.map +0 -1
  393. package/dist/adapters/s3db/adapter.js +0 -536
  394. package/dist/adapters/s3db/adapter.js.map +0 -1
  395. package/dist/adapters/s3db/index.d.ts +0 -20
  396. package/dist/adapters/s3db/index.d.ts.map +0 -1
  397. package/dist/adapters/s3db/index.js +0 -25
  398. package/dist/adapters/s3db/index.js.map +0 -1
  399. package/dist/adapters/s3db/s3db.int.test.d.ts +0 -5
  400. package/dist/adapters/s3db/s3db.int.test.d.ts.map +0 -1
  401. package/dist/adapters/s3db/s3db.int.test.js +0 -472
  402. package/dist/adapters/s3db/s3db.int.test.js.map +0 -1
  403. package/dist/adapters/s3db/types.d.ts +0 -277
  404. package/dist/adapters/s3db/types.d.ts.map +0 -1
  405. package/dist/adapters/s3db/types.js +0 -7
  406. package/dist/adapters/s3db/types.js.map +0 -1
  407. package/dist/adapters/s3db/utils/etag.d.ts +0 -65
  408. package/dist/adapters/s3db/utils/etag.d.ts.map +0 -1
  409. package/dist/adapters/s3db/utils/etag.js +0 -99
  410. package/dist/adapters/s3db/utils/etag.js.map +0 -1
  411. package/dist/adapters/s3db/utils/guards.d.ts +0 -121
  412. package/dist/adapters/s3db/utils/guards.d.ts.map +0 -1
  413. package/dist/adapters/s3db/utils/guards.js +0 -169
  414. package/dist/adapters/s3db/utils/guards.js.map +0 -1
  415. package/dist/adapters/s3db/utils/index.d.ts +0 -9
  416. package/dist/adapters/s3db/utils/index.d.ts.map +0 -1
  417. package/dist/adapters/s3db/utils/index.js +0 -10
  418. package/dist/adapters/s3db/utils/index.js.map +0 -1
  419. package/dist/adapters/s3db/utils/populate.d.ts +0 -89
  420. package/dist/adapters/s3db/utils/populate.d.ts.map +0 -1
  421. package/dist/adapters/s3db/utils/populate.js +0 -165
  422. package/dist/adapters/s3db/utils/populate.js.map +0 -1
  423. package/dist/adapters/tcp.int.test.d.ts +0 -5
  424. package/dist/adapters/tcp.int.test.d.ts.map +0 -1
  425. package/dist/adapters/tcp.int.test.js +0 -379
  426. package/dist/adapters/tcp.int.test.js.map +0 -1
  427. package/dist/adapters/udp.int.test.d.ts +0 -5
  428. package/dist/adapters/udp.int.test.d.ts.map +0 -1
  429. package/dist/adapters/udp.int.test.js +0 -397
  430. package/dist/adapters/udp.int.test.js.map +0 -1
  431. package/dist/adapters/websocket.int.test.d.ts +0 -5
  432. package/dist/adapters/websocket.int.test.d.ts.map +0 -1
  433. package/dist/adapters/websocket.int.test.js +0 -383
  434. package/dist/adapters/websocket.int.test.js.map +0 -1
  435. package/dist/cache/drivers/memory.int.test.d.ts +0 -5
  436. package/dist/cache/drivers/memory.int.test.d.ts.map +0 -1
  437. package/dist/cache/drivers/memory.int.test.js +0 -241
  438. package/dist/cache/drivers/memory.int.test.js.map +0 -1
  439. package/dist/cache/drivers/s3db.d.ts +0 -78
  440. package/dist/cache/drivers/s3db.d.ts.map +0 -1
  441. package/dist/cache/drivers/s3db.js +0 -216
  442. package/dist/cache/drivers/s3db.js.map +0 -1
  443. package/dist/channels/channel-manager.int.test.d.ts +0 -5
  444. package/dist/channels/channel-manager.int.test.d.ts.map +0 -1
  445. package/dist/channels/channel-manager.int.test.js +0 -378
  446. package/dist/channels/channel-manager.int.test.js.map +0 -1
  447. package/dist/core/ctx-call.int.test.d.ts +0 -7
  448. package/dist/core/ctx-call.int.test.d.ts.map +0 -1
  449. package/dist/core/ctx-call.int.test.js +0 -263
  450. package/dist/core/ctx-call.int.test.js.map +0 -1
  451. package/dist/core/registry.unit.test.d.ts +0 -2
  452. package/dist/core/registry.unit.test.d.ts.map +0 -1
  453. package/dist/core/registry.unit.test.js +0 -133
  454. package/dist/core/registry.unit.test.js.map +0 -1
  455. package/dist/core/router.int.test.d.ts +0 -2
  456. package/dist/core/router.int.test.d.ts.map +0 -1
  457. package/dist/core/router.int.test.js +0 -368
  458. package/dist/core/router.int.test.js.map +0 -1
  459. package/dist/docs/generators/generators.int.test.d.ts +0 -2
  460. package/dist/docs/generators/generators.int.test.d.ts.map +0 -1
  461. package/dist/docs/generators/generators.int.test.js +0 -105
  462. package/dist/docs/generators/generators.int.test.js.map +0 -1
  463. package/dist/docs/openapi/generator.int.test.d.ts +0 -5
  464. package/dist/docs/openapi/generator.int.test.d.ts.map +0 -1
  465. package/dist/docs/openapi/generator.int.test.js +0 -260
  466. package/dist/docs/openapi/generator.int.test.js.map +0 -1
  467. package/dist/dx/health/health.int.test.d.ts +0 -5
  468. package/dist/dx/health/health.int.test.d.ts.map +0 -1
  469. package/dist/dx/health/health.int.test.js +0 -249
  470. package/dist/dx/health/health.int.test.js.map +0 -1
  471. package/dist/dx/logging/http-logging.int.test.d.ts +0 -5
  472. package/dist/dx/logging/http-logging.int.test.d.ts.map +0 -1
  473. package/dist/dx/logging/http-logging.int.test.js +0 -319
  474. package/dist/dx/logging/http-logging.int.test.js.map +0 -1
  475. package/dist/errors/factories.unit.test.d.ts +0 -7
  476. package/dist/errors/factories.unit.test.d.ts.map +0 -1
  477. package/dist/errors/factories.unit.test.js +0 -358
  478. package/dist/errors/factories.unit.test.js.map +0 -1
  479. package/dist/graphql/graphql.int.test.d.ts +0 -10
  480. package/dist/graphql/graphql.int.test.d.ts.map +0 -1
  481. package/dist/graphql/graphql.int.test.js +0 -698
  482. package/dist/graphql/graphql.int.test.js.map +0 -1
  483. package/dist/graphql/schema-generator.int.test.d.ts +0 -5
  484. package/dist/graphql/schema-generator.int.test.d.ts.map +0 -1
  485. package/dist/graphql/schema-generator.int.test.js +0 -51
  486. package/dist/graphql/schema-generator.int.test.js.map +0 -1
  487. package/dist/http/http.int.test.d.ts +0 -7
  488. package/dist/http/http.int.test.d.ts.map +0 -1
  489. package/dist/http/http.int.test.js +0 -605
  490. package/dist/http/http.int.test.js.map +0 -1
  491. package/dist/http/session-redis.int.test.d.ts +0 -8
  492. package/dist/http/session-redis.int.test.d.ts.map +0 -1
  493. package/dist/http/session-redis.int.test.js +0 -492
  494. package/dist/http/session-redis.int.test.js.map +0 -1
  495. package/dist/metrics/metrics.int.test.d.ts +0 -5
  496. package/dist/metrics/metrics.int.test.d.ts.map +0 -1
  497. package/dist/metrics/metrics.int.test.js +0 -288
  498. package/dist/metrics/metrics.int.test.js.map +0 -1
  499. package/dist/middleware/auth/oauth2.int.test.d.ts +0 -2
  500. package/dist/middleware/auth/oauth2.int.test.d.ts.map +0 -1
  501. package/dist/middleware/auth/oauth2.int.test.js +0 -714
  502. package/dist/middleware/auth/oauth2.int.test.js.map +0 -1
  503. package/dist/middleware/auth.int.test.d.ts +0 -5
  504. package/dist/middleware/auth.int.test.d.ts.map +0 -1
  505. package/dist/middleware/auth.int.test.js +0 -366
  506. package/dist/middleware/auth.int.test.js.map +0 -1
  507. package/dist/middleware/compose.int.test.d.ts +0 -7
  508. package/dist/middleware/compose.int.test.d.ts.map +0 -1
  509. package/dist/middleware/compose.int.test.js +0 -238
  510. package/dist/middleware/compose.int.test.js.map +0 -1
  511. package/dist/middleware/interceptors/bulkhead.int.test.d.ts +0 -5
  512. package/dist/middleware/interceptors/bulkhead.int.test.d.ts.map +0 -1
  513. package/dist/middleware/interceptors/bulkhead.int.test.js +0 -263
  514. package/dist/middleware/interceptors/bulkhead.int.test.js.map +0 -1
  515. package/dist/middleware/interceptors/cache.int.test.d.ts +0 -5
  516. package/dist/middleware/interceptors/cache.int.test.d.ts.map +0 -1
  517. package/dist/middleware/interceptors/cache.int.test.js +0 -470
  518. package/dist/middleware/interceptors/cache.int.test.js.map +0 -1
  519. package/dist/middleware/interceptors/circuit-breaker.int.test.d.ts +0 -5
  520. package/dist/middleware/interceptors/circuit-breaker.int.test.d.ts.map +0 -1
  521. package/dist/middleware/interceptors/circuit-breaker.int.test.js +0 -253
  522. package/dist/middleware/interceptors/circuit-breaker.int.test.js.map +0 -1
  523. package/dist/middleware/interceptors/envelope.int.test.d.ts +0 -5
  524. package/dist/middleware/interceptors/envelope.int.test.d.ts.map +0 -1
  525. package/dist/middleware/interceptors/envelope.int.test.js +0 -409
  526. package/dist/middleware/interceptors/envelope.int.test.js.map +0 -1
  527. package/dist/middleware/interceptors/fallback.int.test.d.ts +0 -5
  528. package/dist/middleware/interceptors/fallback.int.test.d.ts.map +0 -1
  529. package/dist/middleware/interceptors/fallback.int.test.js +0 -211
  530. package/dist/middleware/interceptors/fallback.int.test.js.map +0 -1
  531. package/dist/middleware/interceptors/logging.int.test.d.ts +0 -5
  532. package/dist/middleware/interceptors/logging.int.test.d.ts.map +0 -1
  533. package/dist/middleware/interceptors/logging.int.test.js +0 -144
  534. package/dist/middleware/interceptors/logging.int.test.js.map +0 -1
  535. package/dist/middleware/interceptors/rate-limit.int.test.d.ts +0 -5
  536. package/dist/middleware/interceptors/rate-limit.int.test.d.ts.map +0 -1
  537. package/dist/middleware/interceptors/rate-limit.int.test.js +0 -221
  538. package/dist/middleware/interceptors/rate-limit.int.test.js.map +0 -1
  539. package/dist/middleware/interceptors/request-id.int.test.d.ts +0 -5
  540. package/dist/middleware/interceptors/request-id.int.test.d.ts.map +0 -1
  541. package/dist/middleware/interceptors/request-id.int.test.js +0 -136
  542. package/dist/middleware/interceptors/request-id.int.test.js.map +0 -1
  543. package/dist/middleware/interceptors/retry.int.test.d.ts +0 -5
  544. package/dist/middleware/interceptors/retry.int.test.d.ts.map +0 -1
  545. package/dist/middleware/interceptors/retry.int.test.js +0 -534
  546. package/dist/middleware/interceptors/retry.int.test.js.map +0 -1
  547. package/dist/middleware/interceptors/timeout.int.test.d.ts +0 -5
  548. package/dist/middleware/interceptors/timeout.int.test.d.ts.map +0 -1
  549. package/dist/middleware/interceptors/timeout.int.test.js +0 -228
  550. package/dist/middleware/interceptors/timeout.int.test.js.map +0 -1
  551. package/dist/rate-limit/drivers/drivers.int.test.d.ts +0 -7
  552. package/dist/rate-limit/drivers/drivers.int.test.d.ts.map +0 -1
  553. package/dist/rate-limit/drivers/drivers.int.test.js +0 -466
  554. package/dist/rate-limit/drivers/drivers.int.test.js.map +0 -1
  555. package/dist/server/builder.int.test.d.ts +0 -7
  556. package/dist/server/builder.int.test.d.ts.map +0 -1
  557. package/dist/server/builder.int.test.js +0 -455
  558. package/dist/server/builder.int.test.js.map +0 -1
  559. package/dist/server/fs-routes/loader.int.test.d.ts +0 -5
  560. package/dist/server/fs-routes/loader.int.test.d.ts.map +0 -1
  561. package/dist/server/fs-routes/loader.int.test.js +0 -48
  562. package/dist/server/fs-routes/loader.int.test.js.map +0 -1
  563. package/dist/server/hooks.int.test.d.ts +0 -7
  564. package/dist/server/hooks.int.test.d.ts.map +0 -1
  565. package/dist/server/hooks.int.test.js +0 -564
  566. package/dist/server/hooks.int.test.js.map +0 -1
  567. package/dist/server/route-discovery.int.test.d.ts +0 -5
  568. package/dist/server/route-discovery.int.test.d.ts.map +0 -1
  569. package/dist/server/route-discovery.int.test.js +0 -49
  570. package/dist/server/route-discovery.int.test.js.map +0 -1
  571. package/dist/stream/raffel-stream.int.test.d.ts +0 -2
  572. package/dist/stream/raffel-stream.int.test.d.ts.map +0 -1
  573. package/dist/stream/raffel-stream.int.test.js +0 -265
  574. package/dist/stream/raffel-stream.int.test.js.map +0 -1
  575. package/dist/tracing/tracing.int.test.d.ts +0 -5
  576. package/dist/tracing/tracing.int.test.d.ts.map +0 -1
  577. package/dist/tracing/tracing.int.test.js +0 -412
  578. package/dist/tracing/tracing.int.test.js.map +0 -1
  579. package/dist/usd/usd.int.test.d.ts +0 -10
  580. package/dist/usd/usd.int.test.d.ts.map +0 -1
  581. package/dist/usd/usd.int.test.js +0 -719
  582. package/dist/usd/usd.int.test.js.map +0 -1
  583. package/dist/validation/multi-validator.int.test.d.ts +0 -7
  584. package/dist/validation/multi-validator.int.test.d.ts.map +0 -1
  585. package/dist/validation/multi-validator.int.test.js +0 -808
  586. package/dist/validation/multi-validator.int.test.js.map +0 -1
  587. package/dist/validation/schema.int.test.d.ts +0 -5
  588. package/dist/validation/schema.int.test.d.ts.map +0 -1
  589. package/dist/validation/schema.int.test.js +0 -340
  590. package/dist/validation/schema.int.test.js.map +0 -1
@@ -1,383 +0,0 @@
1
- /**
2
- * WebSocket Adapter Tests
3
- */
4
- import { describe, it, beforeEach, afterEach, expect, vi } from 'vitest';
5
- import { WebSocket } from 'ws';
6
- import { createWebSocketAdapter } from './websocket.js';
7
- import { createRegistry } from '../core/registry.js';
8
- import { createRouter, RaffelError } from '../core/router.js';
9
- const TEST_PORT = 23456;
10
- describe('WebSocketAdapter', () => {
11
- let registry;
12
- let router;
13
- let adapter = null;
14
- beforeEach(() => {
15
- registry = createRegistry();
16
- router = createRouter(registry);
17
- });
18
- afterEach(async () => {
19
- if (adapter) {
20
- await adapter.stop();
21
- adapter = null;
22
- }
23
- });
24
- // Helper to create WebSocket client
25
- function createClient() {
26
- return new Promise((resolve, reject) => {
27
- const ws = new WebSocket(`ws://localhost:${TEST_PORT}`);
28
- ws.on('open', () => resolve(ws));
29
- ws.on('error', reject);
30
- });
31
- }
32
- // Helper to send and wait for response
33
- function sendAndWait(ws, message) {
34
- return new Promise((resolve, reject) => {
35
- const timeout = setTimeout(() => reject(new Error('Timeout')), 5000);
36
- ws.once('message', (data) => {
37
- clearTimeout(timeout);
38
- try {
39
- resolve(JSON.parse(data.toString()));
40
- }
41
- catch (err) {
42
- reject(err);
43
- }
44
- });
45
- ws.send(JSON.stringify(message));
46
- });
47
- }
48
- // Helper to collect multiple messages
49
- function collectMessages(ws, count) {
50
- return new Promise((resolve, reject) => {
51
- const messages = [];
52
- const timeout = setTimeout(() => reject(new Error('Timeout')), 10000);
53
- const handler = (data) => {
54
- try {
55
- messages.push(JSON.parse(data.toString()));
56
- if (messages.length >= count) {
57
- clearTimeout(timeout);
58
- ws.off('message', handler);
59
- resolve(messages);
60
- }
61
- }
62
- catch (err) {
63
- clearTimeout(timeout);
64
- reject(err);
65
- }
66
- };
67
- ws.on('message', handler);
68
- });
69
- }
70
- describe('Server lifecycle', () => {
71
- it('should start and stop', async () => {
72
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
73
- await adapter.start();
74
- expect(adapter.clientCount).toBe(0);
75
- await adapter.stop();
76
- adapter = null;
77
- });
78
- it('should accept client connections', async () => {
79
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
80
- await adapter.start();
81
- const ws = await createClient();
82
- expect(adapter.clientCount).toBe(1);
83
- ws.close();
84
- // Wait for close to propagate
85
- await new Promise(r => setTimeout(r, 100));
86
- expect(adapter.clientCount).toBe(0);
87
- });
88
- it('should handle multiple clients', async () => {
89
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
90
- await adapter.start();
91
- const ws1 = await createClient();
92
- const ws2 = await createClient();
93
- const ws3 = await createClient();
94
- expect(adapter.clientCount).toBe(3);
95
- ws1.close();
96
- ws2.close();
97
- ws3.close();
98
- });
99
- });
100
- describe('Procedure handling', () => {
101
- it('should handle procedure requests', async () => {
102
- registry.procedure('greet', async (input) => {
103
- return { message: `Hello, ${input.name}!` };
104
- });
105
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
106
- await adapter.start();
107
- const ws = await createClient();
108
- const response = await sendAndWait(ws, {
109
- id: 'req-1',
110
- procedure: 'greet',
111
- type: 'request',
112
- payload: { name: 'World' },
113
- });
114
- // Response ID is request ID + :response suffix
115
- expect(response.id).toBe('req-1:response');
116
- expect(response.procedure).toBe('greet');
117
- expect(response.type).toBe('response');
118
- expect(response.payload).toEqual({ message: 'Hello, World!' });
119
- ws.close();
120
- });
121
- it('should handle procedure errors', async () => {
122
- registry.procedure('fail', async () => {
123
- throw new RaffelError('TEST_ERROR', 'Something went wrong');
124
- });
125
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
126
- await adapter.start();
127
- const ws = await createClient();
128
- const response = await sendAndWait(ws, {
129
- id: 'req-2',
130
- procedure: 'fail',
131
- type: 'request',
132
- payload: {},
133
- });
134
- expect(response.type).toBe('error');
135
- const payload = response.payload;
136
- expect(payload.code).toBe('TEST_ERROR');
137
- expect(payload.message).toBe('Something went wrong');
138
- ws.close();
139
- });
140
- it('should handle unknown procedures', async () => {
141
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
142
- await adapter.start();
143
- const ws = await createClient();
144
- const response = await sendAndWait(ws, {
145
- id: 'req-3',
146
- procedure: 'nonexistent',
147
- type: 'request',
148
- payload: {},
149
- });
150
- expect(response.type).toBe('error');
151
- const payload = response.payload;
152
- expect(payload.code).toBe('NOT_FOUND');
153
- ws.close();
154
- });
155
- });
156
- describe('Channels', () => {
157
- it('should enforce onPublish hook when provided', async () => {
158
- const onPublish = vi.fn().mockResolvedValue(false);
159
- adapter = createWebSocketAdapter(router, {
160
- port: TEST_PORT,
161
- channels: {
162
- authorize: async () => true,
163
- onPublish,
164
- },
165
- });
166
- await adapter.start();
167
- const ws = await createClient();
168
- const subscribe = await sendAndWait(ws, {
169
- id: 'sub-1',
170
- type: 'subscribe',
171
- channel: 'chat-room',
172
- });
173
- expect(subscribe.type).toBe('subscribed');
174
- const response = await sendAndWait(ws, {
175
- id: 'pub-1',
176
- type: 'publish',
177
- channel: 'chat-room',
178
- event: 'message',
179
- data: { text: 'hello' },
180
- });
181
- expect(response.type).toBe('error');
182
- expect(response.code).toBe('PERMISSION_DENIED');
183
- expect(onPublish).toHaveBeenCalled();
184
- ws.close();
185
- });
186
- });
187
- describe('Stream handling', () => {
188
- it('should handle stream responses', async () => {
189
- registry.stream('counter', async function* (input) {
190
- for (let i = 1; i <= input.count; i++) {
191
- yield { value: i };
192
- }
193
- });
194
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
195
- await adapter.start();
196
- const ws = await createClient();
197
- // Start collecting before sending
198
- // Stream emits: 1 start + 3 data + 1 end = 5 messages
199
- const messagesPromise = collectMessages(ws, 5);
200
- ws.send(JSON.stringify({
201
- id: 'stream-1',
202
- procedure: 'counter',
203
- type: 'stream:start',
204
- payload: { count: 3 },
205
- }));
206
- const messages = await messagesPromise;
207
- // Check start message
208
- const startMessages = messages.filter((m) => m.type === 'stream:start');
209
- expect(startMessages.length).toBe(1);
210
- // Check data messages
211
- const dataMessages = messages.filter((m) => m.type === 'stream:data');
212
- expect(dataMessages.length).toBe(3);
213
- expect(dataMessages[0].payload).toEqual({ value: 1 });
214
- expect(dataMessages[1].payload).toEqual({ value: 2 });
215
- expect(dataMessages[2].payload).toEqual({ value: 3 });
216
- // Check end message
217
- const endMessages = messages.filter((m) => m.type === 'stream:end');
218
- expect(endMessages.length).toBe(1);
219
- ws.close();
220
- });
221
- it('should handle stream errors', async () => {
222
- registry.stream('failStream', async function* () {
223
- yield { value: 1 };
224
- throw new Error('Stream failed');
225
- });
226
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
227
- await adapter.start();
228
- const ws = await createClient();
229
- // Stream emits: 1 start + 1 data + 1 error = 3 messages
230
- const messagesPromise = collectMessages(ws, 3);
231
- ws.send(JSON.stringify({
232
- id: 'stream-2',
233
- procedure: 'failStream',
234
- type: 'stream:start',
235
- payload: {},
236
- }));
237
- const messages = await messagesPromise;
238
- // Check start message
239
- expect(messages[0].type).toBe('stream:start');
240
- // Check data message
241
- expect(messages[1].type).toBe('stream:data');
242
- expect(messages[1].payload).toEqual({ value: 1 });
243
- // Check error message (stream:error type from router)
244
- expect(messages[2].type).toBe('stream:error');
245
- ws.close();
246
- });
247
- });
248
- describe('Event handling', () => {
249
- it('should handle fire-and-forget events', async () => {
250
- const received = [];
251
- registry.event('log', async (payload) => {
252
- received.push(payload);
253
- });
254
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
255
- await adapter.start();
256
- const ws = await createClient();
257
- // Send event (no response expected for fire-and-forget)
258
- ws.send(JSON.stringify({
259
- id: 'evt-1',
260
- procedure: 'log',
261
- type: 'event',
262
- payload: { message: 'Test log' },
263
- }));
264
- // Wait for processing
265
- await new Promise(r => setTimeout(r, 200));
266
- expect(received.length).toBe(1);
267
- expect(received[0]).toEqual({ message: 'Test log' });
268
- ws.close();
269
- });
270
- });
271
- describe('Cancellation', () => {
272
- it('should abort context when client disconnects', async () => {
273
- let aborted = false;
274
- registry.procedure('waitForAbort', async (_input, ctx) => {
275
- await new Promise((resolve) => {
276
- ctx.signal.addEventListener('abort', () => {
277
- aborted = true;
278
- resolve();
279
- }, { once: true });
280
- });
281
- return { aborted: true };
282
- });
283
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
284
- await adapter.start();
285
- const ws = await createClient();
286
- ws.send(JSON.stringify({
287
- id: 'req-abort',
288
- procedure: 'waitForAbort',
289
- type: 'request',
290
- payload: {},
291
- }));
292
- await new Promise(r => setTimeout(r, 20));
293
- const closePromise = new Promise((resolve) => ws.on('close', resolve));
294
- ws.close();
295
- await closePromise;
296
- await new Promise(r => setTimeout(r, 50));
297
- expect(aborted).toBe(true);
298
- });
299
- });
300
- describe('Error handling', () => {
301
- it('should handle invalid JSON', async () => {
302
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
303
- await adapter.start();
304
- const ws = await createClient();
305
- const responsePromise = new Promise((resolve) => {
306
- ws.once('message', (data) => {
307
- resolve(JSON.parse(data.toString()));
308
- });
309
- });
310
- ws.send('not valid json');
311
- const response = await responsePromise;
312
- expect(response.type).toBe('error');
313
- const payload = response.payload;
314
- expect(payload.code).toBe('PARSE_ERROR');
315
- ws.close();
316
- });
317
- it('should handle missing procedure', async () => {
318
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
319
- await adapter.start();
320
- const ws = await createClient();
321
- const response = await sendAndWait(ws, {
322
- type: 'request',
323
- payload: {},
324
- });
325
- expect(response.type).toBe('error');
326
- const payload = response.payload;
327
- expect(payload.code).toBe('INVALID_ENVELOPE');
328
- ws.close();
329
- });
330
- it('should handle missing type', async () => {
331
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
332
- await adapter.start();
333
- const ws = await createClient();
334
- const response = await sendAndWait(ws, {
335
- procedure: 'test',
336
- payload: {},
337
- });
338
- expect(response.type).toBe('error');
339
- const payload = response.payload;
340
- expect(payload.code).toBe('INVALID_ENVELOPE');
341
- ws.close();
342
- });
343
- });
344
- describe('Configuration', () => {
345
- it('should use custom host', async () => {
346
- adapter = createWebSocketAdapter(router, {
347
- port: TEST_PORT,
348
- host: '127.0.0.1',
349
- });
350
- await adapter.start();
351
- const ws = await createClient();
352
- expect(adapter.clientCount).toBe(1);
353
- ws.close();
354
- });
355
- it('should disable heartbeat with interval 0', async () => {
356
- adapter = createWebSocketAdapter(router, {
357
- port: TEST_PORT,
358
- heartbeatInterval: 0,
359
- });
360
- await adapter.start();
361
- const ws = await createClient();
362
- expect(adapter.clientCount).toBe(1);
363
- ws.close();
364
- });
365
- });
366
- describe('Graceful shutdown', () => {
367
- it('should close all connections on stop', async () => {
368
- adapter = createWebSocketAdapter(router, { port: TEST_PORT });
369
- await adapter.start();
370
- const ws1 = await createClient();
371
- const ws2 = await createClient();
372
- expect(adapter.clientCount).toBe(2);
373
- const closePromises = [
374
- new Promise(r => ws1.on('close', r)),
375
- new Promise(r => ws2.on('close', r)),
376
- ];
377
- await adapter.stop();
378
- adapter = null;
379
- await Promise.all(closePromises);
380
- });
381
- });
382
- });
383
- //# sourceMappingURL=websocket.int.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.int.test.js","sourceRoot":"","sources":["../../src/adapters/websocket.int.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE7D,MAAM,SAAS,GAAG,KAAK,CAAA;AAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,QAA2C,CAAA;IAC/C,IAAI,MAAuC,CAAA;IAC3C,IAAI,OAAO,GAAqD,IAAI,CAAA;IAEpE,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,cAAc,EAAE,CAAA;QAC3B,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;YACpB,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,oCAAoC;IACpC,SAAS,YAAY;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;YACvD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAChC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uCAAuC;IACvC,SAAS,WAAW,CAAC,EAAa,EAAE,OAAe;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAEpE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sCAAsC;IACtC,SAAS,eAAe,CAAC,EAAa,EAAE,KAAa;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAA8B,EAAE,CAAA;YAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAErE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC/B,IAAI,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAC1C,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;wBAC7B,YAAY,CAAC,OAAO,CAAC,CAAA;wBACrB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;wBAC1B,OAAO,CAAC,QAAQ,CAAC,CAAA;oBACnB,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;YACH,CAAC,CAAA;YAED,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAE7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YACrB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;YACpB,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnC,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,8BAA8B;YAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAA;YAEhC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnC,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,KAAK,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAuB,EAAE,EAAE;gBAC5D,OAAO,EAAE,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,EAAE,EAAE,OAAO;gBACX,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC3B,CAAC,CAAA;YAEF,+CAA+C;YAC/C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YAE9D,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBACpC,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,EAAE,EAAE,OAAO;gBACX,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA4C,CAAA;YACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;YAEpD,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,EAAE,EAAE,OAAO;gBACX,SAAS,EAAE,aAAa;gBACxB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA2B,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAEtC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAClD,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE;oBACR,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;oBAC3B,SAAS;iBACV;aACF,CAAC,CAAA;YACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACtC,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW;aACrB,CAAC,CAAA;YAEF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAEzC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aACxB,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAEpC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,SAAS,CAAC,EAAE,KAAwB;gBAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;gBACpB,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAE/B,kCAAkC;YAClC,sDAAsD;YACtD,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAE9C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,UAAU;gBACd,SAAS,EAAE,SAAS;gBACpB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;aACtB,CAAC,CAAC,CAAA;YAEH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAA;YAEtC,sBAAsB;YACtB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;YACvE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEpC,sBAAsB;YACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;YACrE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAErD,oBAAoB;YACpB,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;YACnE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAElC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC;gBAC3C,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;gBAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,wDAAwD;YACxD,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAE9C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,UAAU;gBACd,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC,CAAA;YAEH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAA;YAEtC,sBAAsB;YACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAE7C,qBAAqB;YACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAEjD,sDAAsD;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAE7C,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,QAAQ,GAAc,EAAE,CAAA;YAE9B,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;gBAC/C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAE/B,wDAAwD;YACxD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,OAAO;gBACX,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aACjC,CAAC,CAAC,CAAA;YAEH,sBAAsB;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAE1C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;YAEpD,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,IAAI,OAAO,GAAG,KAAK,CAAA;YAEnB,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,MAAe,EAAE,GAAG,EAAE,EAAE;gBAChE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;wBACxC,OAAO,GAAG,IAAI,CAAA;wBACd,OAAO,EAAE,CAAA;oBACX,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;gBACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAE/B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,WAAW;gBACf,SAAS,EAAE,cAAc;gBACzB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC,CAAA;YAEH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAEzC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;YAC5E,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,MAAM,YAAY,CAAA;YAElB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAE/B,MAAM,eAAe,GAAG,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBACvE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACtC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAEzB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAA;YACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA2B,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAExC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA2B,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAE7C,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE;gBACrC,SAAS,EAAE,MAAM;gBACjB,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA2B,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAE7C,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;aAClB,CAAC,CAAA;YACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,iBAAiB,EAAE,CAAC;aACrB,CAAC,CAAA;YACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;YAErB,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAA;YAEhC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,aAAa,GAAG;gBACpB,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aAC3C,CAAA;YAED,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;YACpB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Memory Cache Driver Tests
3
- */
4
- export {};
5
- //# sourceMappingURL=memory.int.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.int.test.d.ts","sourceRoot":"","sources":["../../../src/cache/drivers/memory.int.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,241 +0,0 @@
1
- /**
2
- * Memory Cache Driver Tests
3
- */
4
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
5
- import { MemoryDriver, createMemoryDriver } from './memory.js';
6
- describe('MemoryDriver', () => {
7
- let driver;
8
- beforeEach(() => {
9
- driver = new MemoryDriver({
10
- maxSize: 100,
11
- enableStats: true,
12
- });
13
- });
14
- afterEach(async () => {
15
- await driver.shutdown();
16
- });
17
- describe('basic operations', () => {
18
- it('should set and get a value', async () => {
19
- await driver.set('key1', { name: 'Alice' }, 60000);
20
- const result = await driver.get('key1');
21
- expect(result).toBeDefined();
22
- expect(result?.entry.value).toEqual({ name: 'Alice' });
23
- });
24
- it('should return undefined for non-existent key', async () => {
25
- const result = await driver.get('non-existent');
26
- expect(result).toBeUndefined();
27
- });
28
- it('should delete a value', async () => {
29
- await driver.set('key1', 'value1', 60000);
30
- await driver.delete('key1');
31
- const result = await driver.get('key1');
32
- expect(result).toBeUndefined();
33
- });
34
- it('should clear all values', async () => {
35
- await driver.set('key1', 'value1', 60000);
36
- await driver.set('key2', 'value2', 60000);
37
- await driver.clear();
38
- expect(await driver.get('key1')).toBeUndefined();
39
- expect(await driver.get('key2')).toBeUndefined();
40
- });
41
- it('should clear values by prefix', async () => {
42
- await driver.set('user:1', 'Alice', 60000);
43
- await driver.set('user:2', 'Bob', 60000);
44
- await driver.set('product:1', 'Widget', 60000);
45
- await driver.clear('user:');
46
- expect(await driver.get('user:1')).toBeUndefined();
47
- expect(await driver.get('user:2')).toBeUndefined();
48
- expect(await driver.get('product:1')).toBeDefined();
49
- });
50
- it('should check if key exists', async () => {
51
- await driver.set('key1', 'value1', 60000);
52
- expect(await driver.has('key1')).toBe(true);
53
- expect(await driver.has('key2')).toBe(false);
54
- });
55
- it('should list all keys', async () => {
56
- await driver.set('key1', 'value1', 60000);
57
- await driver.set('key2', 'value2', 60000);
58
- const keys = await driver.keys();
59
- expect(keys).toContain('key1');
60
- expect(keys).toContain('key2');
61
- });
62
- });
63
- describe('TTL expiration', () => {
64
- it('should expire entries after TTL', async () => {
65
- vi.useFakeTimers();
66
- await driver.set('key1', 'value1', 100); // 100ms TTL
67
- // Should exist immediately
68
- expect(await driver.get('key1')).toBeDefined();
69
- // Advance time past TTL
70
- vi.advanceTimersByTime(150);
71
- // Should be expired
72
- expect(await driver.get('key1')).toBeUndefined();
73
- vi.useRealTimers();
74
- });
75
- it('should update expiresAt and createdAt in entry', async () => {
76
- const before = Date.now();
77
- await driver.set('key1', 'value1', 60000);
78
- const result = await driver.get('key1');
79
- expect(result?.entry.createdAt).toBeGreaterThanOrEqual(before);
80
- expect(result?.entry.expiresAt).toBeGreaterThan(result?.entry.createdAt ?? 0);
81
- });
82
- });
83
- describe('LRU eviction', () => {
84
- it('should evict least recently used items when maxSize is reached', async () => {
85
- const smallDriver = new MemoryDriver({
86
- maxSize: 3,
87
- evictionPolicy: 'lru',
88
- });
89
- await smallDriver.set('key1', 'value1', 60000);
90
- await smallDriver.set('key2', 'value2', 60000);
91
- await smallDriver.set('key3', 'value3', 60000);
92
- // Access key1 to make it recently used
93
- await smallDriver.get('key1');
94
- // Add a new item - should evict key2 (least recently used)
95
- await smallDriver.set('key4', 'value4', 60000);
96
- expect(await smallDriver.get('key1')).toBeDefined();
97
- expect(await smallDriver.get('key2')).toBeUndefined(); // Evicted
98
- expect(await smallDriver.get('key3')).toBeDefined();
99
- expect(await smallDriver.get('key4')).toBeDefined();
100
- await smallDriver.shutdown();
101
- });
102
- });
103
- describe('FIFO eviction', () => {
104
- it('should evict oldest items when maxSize is reached', async () => {
105
- const fifoDriver = new MemoryDriver({
106
- maxSize: 3,
107
- evictionPolicy: 'fifo',
108
- });
109
- await fifoDriver.set('key1', 'value1', 60000);
110
- await fifoDriver.set('key2', 'value2', 60000);
111
- await fifoDriver.set('key3', 'value3', 60000);
112
- // Access key1 (shouldn't matter for FIFO)
113
- await fifoDriver.get('key1');
114
- // Add a new item - should evict key1 (oldest)
115
- await fifoDriver.set('key4', 'value4', 60000);
116
- expect(await fifoDriver.get('key1')).toBeUndefined(); // Evicted (oldest)
117
- expect(await fifoDriver.get('key2')).toBeDefined();
118
- expect(await fifoDriver.get('key3')).toBeDefined();
119
- expect(await fifoDriver.get('key4')).toBeDefined();
120
- await fifoDriver.shutdown();
121
- });
122
- });
123
- describe('memory limits', () => {
124
- it('should enforce memory limits', async () => {
125
- const memLimitedDriver = new MemoryDriver({
126
- maxMemoryBytes: 1000, // 1KB limit
127
- maxSize: 10000,
128
- });
129
- // Add items until memory limit is hit
130
- for (let i = 0; i < 50; i++) {
131
- await memLimitedDriver.set(`key${i}`, `value-${i}-${'x'.repeat(50)}`, 60000);
132
- }
133
- // Should have evicted some items due to memory pressure
134
- const stats = memLimitedDriver.getMemoryStats();
135
- expect(stats.currentMemoryBytes).toBeLessThanOrEqual(1000);
136
- await memLimitedDriver.shutdown();
137
- });
138
- });
139
- describe('compression', () => {
140
- it('should compress large values when enabled', async () => {
141
- const compressDriver = new MemoryDriver({
142
- compression: {
143
- enabled: true,
144
- threshold: 100, // Compress values > 100 bytes
145
- },
146
- enableStats: true,
147
- });
148
- // Small value - should not be compressed
149
- await compressDriver.set('small', 'hi', 60000);
150
- // Large value - should be compressed
151
- const largeValue = 'x'.repeat(500);
152
- await compressDriver.set('large', largeValue, 60000);
153
- // Verify we can still read the value correctly
154
- const result = await compressDriver.get('large');
155
- expect(result?.entry.value).toBe(largeValue);
156
- // Check compression stats
157
- const compressionStats = compressDriver.getCompressionStats();
158
- expect(compressionStats.enabled).toBe(true);
159
- expect(compressionStats.compressedItems).toBeGreaterThan(0);
160
- await compressDriver.shutdown();
161
- });
162
- });
163
- describe('statistics', () => {
164
- it('should track hits and misses', async () => {
165
- await driver.set('key1', 'value1', 60000);
166
- // Generate some hits
167
- await driver.get('key1');
168
- await driver.get('key1');
169
- // Generate some misses
170
- await driver.get('missing1');
171
- await driver.get('missing2');
172
- const stats = driver.stats();
173
- expect(stats.hits).toBe(2);
174
- expect(stats.misses).toBe(2);
175
- expect(stats.hitRate).toBe(0.5);
176
- });
177
- it('should track sets and deletes', async () => {
178
- await driver.set('key1', 'value1', 60000);
179
- await driver.set('key2', 'value2', 60000);
180
- await driver.delete('key1');
181
- const stats = driver.stats();
182
- expect(stats.sets).toBe(2);
183
- expect(stats.deletes).toBe(1);
184
- });
185
- });
186
- describe('callbacks', () => {
187
- it('should call onEvict when items are evicted', async () => {
188
- const onEvict = vi.fn();
189
- const callbackDriver = new MemoryDriver({
190
- maxSize: 2,
191
- onEvict,
192
- });
193
- await callbackDriver.set('key1', 'value1', 60000);
194
- await callbackDriver.set('key2', 'value2', 60000);
195
- await callbackDriver.set('key3', 'value3', 60000); // Triggers eviction
196
- expect(onEvict).toHaveBeenCalled();
197
- expect(onEvict.mock.calls[0][0].reason).toBe('size');
198
- await callbackDriver.shutdown();
199
- });
200
- });
201
- describe('createMemoryDriver factory', () => {
202
- it('should create a driver with the factory function', async () => {
203
- const factoryDriver = createMemoryDriver({ maxSize: 50 });
204
- expect(factoryDriver.name).toBe('memory');
205
- await factoryDriver.set('key1', 'value1', 60000);
206
- const result = await factoryDriver.get('key1');
207
- expect(result?.entry.value).toBe('value1');
208
- await factoryDriver.shutdown?.();
209
- });
210
- });
211
- describe('configuration validation', () => {
212
- it('should throw when using both maxMemoryBytes and maxMemoryPercent', () => {
213
- expect(() => {
214
- new MemoryDriver({
215
- maxMemoryBytes: 1000,
216
- maxMemoryPercent: 0.5,
217
- });
218
- }).toThrow('Cannot use both maxMemoryBytes and maxMemoryPercent');
219
- });
220
- it('should throw for invalid maxMemoryPercent', () => {
221
- expect(() => {
222
- new MemoryDriver({
223
- maxMemoryPercent: 1.5,
224
- });
225
- }).toThrow('maxMemoryPercent must be between 0 and 1');
226
- expect(() => {
227
- new MemoryDriver({
228
- maxMemoryPercent: -0.1,
229
- });
230
- }).toThrow('maxMemoryPercent must be between 0 and 1');
231
- });
232
- });
233
- describe('tags', () => {
234
- it('should store and retrieve tags', async () => {
235
- await driver.set('key1', 'value1', 60000, ['user', 'active']);
236
- const result = await driver.get('key1');
237
- expect(result?.entry.tags).toEqual(['user', 'active']);
238
- });
239
- });
240
- });
241
- //# sourceMappingURL=memory.int.test.js.map