equipped 5.2.9 → 5.3.0

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 (781) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +362 -34
  3. package/dist/cjs/cache/adapters/in-memory/index.cjs +824 -0
  4. package/dist/cjs/cache/adapters/in-memory/index.cjs.map +1 -0
  5. package/dist/cjs/cache/adapters/in-memory/index.min.cjs +4 -0
  6. package/dist/cjs/cache/adapters/in-memory/index.min.cjs.map +1 -0
  7. package/dist/cjs/cache/adapters/redis/index.cjs +844 -0
  8. package/dist/cjs/cache/adapters/redis/index.cjs.map +1 -0
  9. package/dist/cjs/cache/adapters/redis/index.min.cjs +4 -0
  10. package/dist/cjs/cache/adapters/redis/index.min.cjs.map +1 -0
  11. package/dist/cjs/cache/index.cjs +602 -4
  12. package/dist/cjs/cache/index.cjs.map +1 -1
  13. package/dist/cjs/cache/index.min.cjs +3 -1
  14. package/dist/cjs/cache/index.min.cjs.map +1 -1
  15. package/dist/cjs/dbs/adapters/mongodb/index.cjs +1314 -0
  16. package/dist/cjs/dbs/adapters/mongodb/index.cjs.map +1 -0
  17. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs +4 -0
  18. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs.map +1 -0
  19. package/dist/cjs/dbs/index.cjs +965 -6
  20. package/dist/cjs/dbs/index.cjs.map +1 -1
  21. package/dist/cjs/dbs/index.min.cjs +3 -1
  22. package/dist/cjs/dbs/index.min.cjs.map +1 -1
  23. package/dist/cjs/errors/index.cjs +127 -8
  24. package/dist/cjs/errors/index.cjs.map +1 -1
  25. package/dist/cjs/errors/index.min.cjs +1 -1
  26. package/dist/cjs/errors/index.min.cjs.map +1 -1
  27. package/dist/cjs/events/adapters/kafka/index.cjs +845 -0
  28. package/dist/cjs/events/adapters/kafka/index.cjs.map +1 -0
  29. package/dist/cjs/events/adapters/kafka/index.min.cjs +4 -0
  30. package/dist/cjs/events/adapters/kafka/index.min.cjs.map +1 -0
  31. package/dist/cjs/events/adapters/rabbitmq/index.cjs +836 -0
  32. package/dist/cjs/events/adapters/rabbitmq/index.cjs.map +1 -0
  33. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs +4 -0
  34. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs.map +1 -0
  35. package/dist/cjs/events/index.cjs +33 -4
  36. package/dist/cjs/events/index.cjs.map +1 -1
  37. package/dist/cjs/events/index.min.cjs +1 -1
  38. package/dist/cjs/events/index.min.cjs.map +1 -1
  39. package/dist/cjs/index.cjs +588 -1
  40. package/dist/cjs/index.cjs.map +1 -1
  41. package/dist/cjs/index.min.cjs +3 -1
  42. package/dist/cjs/index.min.cjs.map +1 -1
  43. package/dist/cjs/instance/index.cjs +514 -64
  44. package/dist/cjs/instance/index.cjs.map +1 -1
  45. package/dist/cjs/instance/index.min.cjs +3 -3
  46. package/dist/cjs/instance/index.min.cjs.map +1 -1
  47. package/dist/cjs/jobs/adapters/redis/index.cjs +979 -0
  48. package/dist/cjs/jobs/adapters/redis/index.cjs.map +1 -0
  49. package/dist/cjs/jobs/adapters/redis/index.min.cjs +4 -0
  50. package/dist/cjs/jobs/adapters/redis/index.min.cjs.map +1 -0
  51. package/dist/cjs/jobs/index.cjs +55 -2
  52. package/dist/cjs/jobs/index.cjs.map +1 -1
  53. package/dist/cjs/jobs/index.min.cjs +1 -1
  54. package/dist/cjs/jobs/index.min.cjs.map +1 -1
  55. package/dist/cjs/orm/adapters/in-memory/index.cjs +2551 -0
  56. package/dist/cjs/orm/adapters/in-memory/index.cjs.map +1 -0
  57. package/dist/cjs/orm/adapters/in-memory/index.min.cjs +4 -0
  58. package/dist/cjs/orm/adapters/in-memory/index.min.cjs.map +1 -0
  59. package/dist/cjs/orm/adapters/json/index.cjs +3518 -0
  60. package/dist/cjs/orm/adapters/json/index.cjs.map +1 -0
  61. package/dist/cjs/orm/adapters/json/index.min.cjs +4 -0
  62. package/dist/cjs/orm/adapters/json/index.min.cjs.map +1 -0
  63. package/dist/cjs/orm/adapters/mongodb/index.cjs +3299 -0
  64. package/dist/cjs/orm/adapters/mongodb/index.cjs.map +1 -0
  65. package/dist/cjs/orm/adapters/mongodb/index.min.cjs +4 -0
  66. package/dist/cjs/orm/adapters/mongodb/index.min.cjs.map +1 -0
  67. package/dist/cjs/orm/adapters/postgresql/index.cjs +4114 -0
  68. package/dist/cjs/orm/adapters/postgresql/index.cjs.map +1 -0
  69. package/dist/cjs/orm/adapters/postgresql/index.min.cjs +49 -0
  70. package/dist/cjs/orm/adapters/postgresql/index.min.cjs.map +1 -0
  71. package/dist/cjs/orm/index.cjs +9216 -0
  72. package/dist/cjs/orm/index.cjs.map +1 -0
  73. package/dist/cjs/orm/index.min.cjs +4 -0
  74. package/dist/cjs/orm/index.min.cjs.map +1 -0
  75. package/dist/cjs/server/adapters/express/index.cjs +1967 -0
  76. package/dist/cjs/server/adapters/express/index.cjs.map +1 -0
  77. package/dist/cjs/server/adapters/express/index.min.cjs +32 -0
  78. package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -0
  79. package/dist/cjs/server/adapters/fastify/index.cjs +1974 -0
  80. package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -0
  81. package/dist/cjs/server/adapters/fastify/index.min.cjs +32 -0
  82. package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -0
  83. package/dist/cjs/server/index.cjs +1811 -9
  84. package/dist/cjs/server/index.cjs.map +1 -1
  85. package/dist/cjs/server/index.min.cjs +31 -1
  86. package/dist/cjs/server/index.min.cjs.map +1 -1
  87. package/dist/cjs/types/index.cjs +18 -1
  88. package/dist/cjs/types/index.cjs.map +1 -1
  89. package/dist/cjs/types/index.min.cjs +1 -1
  90. package/dist/cjs/types/index.min.cjs.map +1 -1
  91. package/dist/cjs/utilities/index.cjs +862 -7
  92. package/dist/cjs/utilities/index.cjs.map +1 -1
  93. package/dist/cjs/utilities/index.min.cjs +3 -1
  94. package/dist/cjs/utilities/index.min.cjs.map +1 -1
  95. package/dist/cjs/validations/index.cjs +679 -10
  96. package/dist/cjs/validations/index.cjs.map +1 -1
  97. package/dist/cjs/validations/index.min.cjs +3 -1
  98. package/dist/cjs/validations/index.min.cjs.map +1 -1
  99. package/dist/esm/cache/adapters/in-memory/index.min.mjs +2 -0
  100. package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -0
  101. package/dist/esm/cache/adapters/in-memory/index.mjs +93 -0
  102. package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -0
  103. package/dist/esm/cache/adapters/redis/index.min.mjs +2 -0
  104. package/dist/esm/cache/adapters/redis/index.mjs +13 -0
  105. package/dist/esm/cache/index.min.mjs +1 -1
  106. package/dist/esm/cache/index.min.mjs.map +1 -1
  107. package/dist/esm/cache/index.mjs +9 -4
  108. package/dist/esm/cache/index.mjs.map +1 -1
  109. package/dist/esm/chunk-4JLDXF7T.min.mjs +2 -0
  110. package/dist/esm/chunk-4JLDXF7T.min.mjs.map +1 -0
  111. package/dist/{types/events/types/kafka.js → esm/chunk-4MXYZS5R.mjs} +60 -37
  112. package/dist/esm/chunk-4MXYZS5R.mjs.map +1 -0
  113. package/dist/esm/chunk-5VW3JAFR.min.mjs +2 -0
  114. package/dist/esm/chunk-5VW3JAFR.min.mjs.map +1 -0
  115. package/dist/esm/chunk-AKQBDYUO.mjs +126 -0
  116. package/dist/esm/chunk-AKQBDYUO.mjs.map +1 -0
  117. package/dist/esm/chunk-AQY7QVYI.min.mjs +2 -0
  118. package/dist/esm/chunk-B5QQ32YY.min.mjs +2 -0
  119. package/dist/esm/chunk-B5QQ32YY.min.mjs.map +1 -0
  120. package/dist/esm/chunk-BJNIUCPT.min.mjs +2 -0
  121. package/dist/esm/chunk-BJNIUCPT.min.mjs.map +1 -0
  122. package/dist/esm/chunk-DKPZJIIR.mjs +29 -0
  123. package/dist/esm/chunk-DKPZJIIR.mjs.map +1 -0
  124. package/dist/esm/chunk-DSUJ5FUL.min.mjs +2 -0
  125. package/dist/esm/chunk-DSUJ5FUL.min.mjs.map +1 -0
  126. package/dist/esm/chunk-FLAPYQUT.min.mjs +32 -0
  127. package/dist/esm/chunk-FLAPYQUT.min.mjs.map +1 -0
  128. package/dist/esm/chunk-J5LGTIGS.mjs +10 -0
  129. package/dist/esm/chunk-JH6EBXY4.mjs +53 -0
  130. package/dist/esm/chunk-JH6EBXY4.mjs.map +1 -0
  131. package/dist/esm/chunk-MDQKODYQ.mjs +2035 -0
  132. package/dist/esm/chunk-MDQKODYQ.mjs.map +1 -0
  133. package/dist/esm/chunk-PCAUXBAG.min.mjs +2 -0
  134. package/dist/esm/chunk-PCAUXBAG.min.mjs.map +1 -0
  135. package/dist/esm/chunk-PNZNNUMN.mjs +113 -0
  136. package/dist/esm/chunk-PNZNNUMN.mjs.map +1 -0
  137. package/dist/esm/chunk-PQCBVQL6.mjs +1280 -0
  138. package/dist/esm/chunk-PQCBVQL6.mjs.map +1 -0
  139. package/dist/esm/chunk-QHLKB47N.min.mjs +2 -0
  140. package/dist/esm/chunk-QHLKB47N.min.mjs.map +1 -0
  141. package/dist/esm/chunk-SGZNOYC3.min.mjs +2 -0
  142. package/dist/esm/chunk-SGZNOYC3.min.mjs.map +1 -0
  143. package/dist/esm/chunk-TVTYDU2D.mjs +795 -0
  144. package/dist/esm/chunk-TVTYDU2D.mjs.map +1 -0
  145. package/dist/esm/chunk-VCCS7CAI.mjs +8 -0
  146. package/dist/esm/chunk-VCCS7CAI.mjs.map +1 -0
  147. package/dist/esm/chunk-Z2TZ3KR7.mjs +22 -0
  148. package/dist/esm/chunk-Z2TZ3KR7.mjs.map +1 -0
  149. package/dist/esm/chunk-ZGMFFK6Y.min.mjs +2 -0
  150. package/dist/esm/chunk-ZGMFFK6Y.min.mjs.map +1 -0
  151. package/dist/esm/dbs/adapters/mongodb/index.min.mjs +2 -0
  152. package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -0
  153. package/dist/esm/dbs/adapters/mongodb/index.mjs +419 -0
  154. package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -0
  155. package/dist/esm/dbs/index.min.mjs +1 -1
  156. package/dist/esm/dbs/index.min.mjs.map +1 -1
  157. package/dist/esm/dbs/index.mjs +22 -6
  158. package/dist/esm/dbs/index.mjs.map +1 -1
  159. package/dist/esm/errors/index.min.mjs +1 -1
  160. package/dist/esm/errors/index.min.mjs.map +1 -1
  161. package/dist/esm/errors/index.mjs +22 -8
  162. package/dist/esm/errors/index.mjs.map +1 -1
  163. package/dist/esm/events/adapters/kafka/index.min.mjs +2 -0
  164. package/dist/esm/events/adapters/kafka/index.min.mjs.map +1 -0
  165. package/dist/esm/events/adapters/kafka/index.mjs +12 -0
  166. package/dist/esm/events/adapters/kafka/index.mjs.map +1 -0
  167. package/dist/esm/events/adapters/rabbitmq/index.min.mjs +2 -0
  168. package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -0
  169. package/dist/esm/events/adapters/rabbitmq/index.mjs +92 -0
  170. package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -0
  171. package/dist/esm/events/index.min.mjs +1 -1
  172. package/dist/esm/events/index.min.mjs.map +1 -1
  173. package/dist/esm/events/index.mjs +7 -4
  174. package/dist/esm/events/index.mjs.map +1 -1
  175. package/dist/esm/index.min.mjs +1 -1
  176. package/dist/esm/index.min.mjs.map +1 -1
  177. package/dist/esm/index.mjs +8 -1
  178. package/dist/esm/index.mjs.map +1 -1
  179. package/dist/esm/instance/index.min.mjs +1 -3
  180. package/dist/esm/instance/index.min.mjs.map +1 -1
  181. package/dist/esm/instance/index.mjs +4 -132
  182. package/dist/esm/instance/index.mjs.map +1 -1
  183. package/dist/esm/introspection-32BRYKYY.mjs +10 -0
  184. package/dist/esm/introspection-32BRYKYY.mjs.map +1 -0
  185. package/dist/esm/introspection-A72WMWE3.min.mjs +2 -0
  186. package/dist/esm/introspection-A72WMWE3.min.mjs.map +1 -0
  187. package/dist/esm/jobs/adapters/redis/index.min.mjs +2 -0
  188. package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -0
  189. package/dist/esm/jobs/{types/redis.mjs → adapters/redis/index.mjs} +71 -56
  190. package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -0
  191. package/dist/esm/jobs/index.min.mjs +1 -1
  192. package/dist/esm/jobs/index.min.mjs.map +1 -1
  193. package/dist/esm/jobs/index.mjs +9 -2
  194. package/dist/esm/jobs/index.mjs.map +1 -1
  195. package/dist/esm/orm/adapters/in-memory/index.min.mjs +2 -0
  196. package/dist/esm/orm/adapters/in-memory/index.min.mjs.map +1 -0
  197. package/dist/esm/orm/adapters/in-memory/index.mjs +11 -0
  198. package/dist/esm/orm/adapters/in-memory/index.mjs.map +1 -0
  199. package/dist/esm/orm/adapters/json/index.min.mjs +2 -0
  200. package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -0
  201. package/dist/esm/orm/adapters/json/index.mjs +980 -0
  202. package/dist/esm/orm/adapters/json/index.mjs.map +1 -0
  203. package/dist/esm/orm/adapters/mongodb/index.min.mjs +2 -0
  204. package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -0
  205. package/dist/esm/orm/adapters/mongodb/index.mjs +1539 -0
  206. package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -0
  207. package/dist/esm/orm/adapters/postgresql/index.min.mjs +47 -0
  208. package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -0
  209. package/dist/esm/orm/adapters/postgresql/index.mjs +2070 -0
  210. package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -0
  211. package/dist/esm/orm/index.min.mjs +2 -0
  212. package/dist/esm/orm/index.min.mjs.map +1 -0
  213. package/dist/esm/orm/index.mjs +7326 -0
  214. package/dist/esm/orm/index.mjs.map +1 -0
  215. package/dist/esm/server/adapters/express/index.min.mjs +2 -0
  216. package/dist/esm/server/adapters/express/index.min.mjs.map +1 -0
  217. package/dist/esm/server/adapters/express/index.mjs +177 -0
  218. package/dist/esm/server/adapters/express/index.mjs.map +1 -0
  219. package/dist/esm/server/adapters/fastify/index.min.mjs +2 -0
  220. package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -0
  221. package/dist/esm/server/adapters/fastify/index.mjs +185 -0
  222. package/dist/esm/server/adapters/fastify/index.mjs.map +1 -0
  223. package/dist/esm/server/index.min.mjs +1 -1
  224. package/dist/esm/server/index.min.mjs.map +1 -1
  225. package/dist/esm/server/index.mjs +38 -9
  226. package/dist/esm/server/index.mjs.map +1 -1
  227. package/dist/esm/types/index.min.mjs +0 -1
  228. package/dist/esm/types/index.min.mjs.map +1 -1
  229. package/dist/esm/types/index.mjs +0 -1
  230. package/dist/esm/types/index.mjs.map +1 -1
  231. package/dist/esm/utilities/index.min.mjs +1 -1
  232. package/dist/esm/utilities/index.min.mjs.map +1 -1
  233. package/dist/esm/utilities/index.mjs +22 -9
  234. package/dist/esm/utilities/index.mjs.map +1 -1
  235. package/dist/esm/validations/index.min.mjs +1 -1
  236. package/dist/esm/validations/index.min.mjs.map +1 -1
  237. package/dist/esm/validations/index.mjs +8 -18
  238. package/dist/esm/validations/index.mjs.map +1 -1
  239. package/dist/types/adapter-Coap9ISX.d.ts +1435 -0
  240. package/dist/types/{fastify-DLPUK3vD.d.ts → base-DVr0fHil.d.ts} +76 -143
  241. package/dist/types/cache/adapters/in-memory/index.d.ts +21 -0
  242. package/dist/types/cache/adapters/in-memory/index.js +92 -0
  243. package/dist/types/cache/adapters/redis/index.d.ts +73 -0
  244. package/dist/types/cache/adapters/redis/index.js +12 -0
  245. package/dist/types/cache/index.d.ts +2 -42
  246. package/dist/types/cache/index.js +9 -4
  247. package/dist/types/chunk-3M4PBZAQ.js +125 -0
  248. package/dist/types/chunk-3TKJGSCZ.js +21 -0
  249. package/dist/types/chunk-65EHKCDZ.js +112 -0
  250. package/dist/types/chunk-JQ2FWX4W.js +1279 -0
  251. package/dist/types/chunk-KZKFYO4V.js +7 -0
  252. package/dist/types/chunk-LN3A6R4Y.js +28 -0
  253. package/dist/types/chunk-MLKGABMK.js +9 -0
  254. package/dist/types/chunk-NJ2FHI3U.js +794 -0
  255. package/dist/types/chunk-OHFTQGQG.js +52 -0
  256. package/dist/{esm/events/types/kafka.mjs → types/chunk-XGGGAEET.js} +59 -38
  257. package/dist/types/chunk-YTY3EFNB.js +2034 -0
  258. package/dist/types/{core-BrkNSwvc.d.ts → core-tNlIMH9Y.d.ts} +48 -38
  259. package/dist/types/dbs/adapters/mongodb/index.d.ts +43 -0
  260. package/dist/types/dbs/adapters/mongodb/index.js +418 -0
  261. package/dist/types/dbs/index.d.ts +14 -12
  262. package/dist/types/dbs/index.js +22 -6
  263. package/dist/types/equippedError-Cmo60Kn-.d.ts +8 -0
  264. package/dist/types/errors/index.d.ts +3 -3
  265. package/dist/types/errors/index.js +22 -8
  266. package/dist/types/events/adapters/kafka/index.d.ts +83 -0
  267. package/dist/types/events/adapters/kafka/index.js +11 -0
  268. package/dist/types/events/adapters/rabbitmq/index.d.ts +41 -0
  269. package/dist/types/events/adapters/rabbitmq/index.js +91 -0
  270. package/dist/types/events/index.d.ts +11 -11
  271. package/dist/types/events/index.js +7 -4
  272. package/dist/types/index.d.ts +2 -25
  273. package/dist/types/index.js +8 -1
  274. package/dist/types/instance/index.d.ts +12 -179
  275. package/dist/types/instance/index.js +4 -132
  276. package/dist/types/introspection-VOIU3XE6.js +9 -0
  277. package/dist/types/jobs/adapters/redis/index.d.ts +93 -0
  278. package/dist/types/jobs/{types/redis.js → adapters/redis/index.js} +70 -55
  279. package/dist/types/jobs/index.d.ts +19 -35
  280. package/dist/types/jobs/index.js +9 -2
  281. package/dist/types/orm/adapters/in-memory/index.d.ts +92 -0
  282. package/dist/types/orm/adapters/in-memory/index.js +10 -0
  283. package/dist/types/orm/adapters/json/index.d.ts +72 -0
  284. package/dist/types/orm/adapters/json/index.js +979 -0
  285. package/dist/types/orm/adapters/mongodb/index.d.ts +74 -0
  286. package/dist/types/orm/adapters/mongodb/index.js +1538 -0
  287. package/dist/types/orm/adapters/postgresql/index.d.ts +112 -0
  288. package/dist/types/orm/adapters/postgresql/index.js +2069 -0
  289. package/dist/types/orm/index.d.ts +160 -0
  290. package/dist/types/orm/index.js +7325 -0
  291. package/dist/types/{requestError-C2PNWUrt.d.ts → requestError-DdaL8hc3.d.ts} +2 -8
  292. package/dist/types/server/adapters/express/index.d.ts +196 -0
  293. package/dist/types/server/adapters/express/index.js +176 -0
  294. package/dist/types/server/adapters/fastify/index.d.ts +221 -0
  295. package/dist/types/server/adapters/fastify/index.js +184 -0
  296. package/dist/types/server/index.d.ts +10 -11
  297. package/dist/types/server/index.js +38 -9
  298. package/dist/types/types/index.js +0 -1
  299. package/dist/types/utilities/index.d.ts +22 -9
  300. package/dist/types/utilities/index.js +22 -9
  301. package/dist/types/{validationError-Bw8OYv5s.d.ts → validationError-oigtHqBi.d.ts} +1 -1
  302. package/dist/types/validations/index.d.ts +3 -2
  303. package/dist/types/validations/index.js +8 -18
  304. package/package.json +155 -18
  305. package/dist/cjs/audit/events.cjs +0 -101
  306. package/dist/cjs/audit/events.cjs.map +0 -1
  307. package/dist/cjs/audit/events.min.cjs +0 -2
  308. package/dist/cjs/audit/events.min.cjs.map +0 -1
  309. package/dist/cjs/audit/index.cjs +0 -2
  310. package/dist/cjs/audit/index.cjs.map +0 -1
  311. package/dist/cjs/audit/index.min.cjs +0 -2
  312. package/dist/cjs/audit/index.min.cjs.map +0 -1
  313. package/dist/cjs/cache/base.cjs +0 -6
  314. package/dist/cjs/cache/base.cjs.map +0 -1
  315. package/dist/cjs/cache/base.min.cjs +0 -2
  316. package/dist/cjs/cache/base.min.cjs.map +0 -1
  317. package/dist/cjs/cache/pipes.cjs +0 -16
  318. package/dist/cjs/cache/pipes.cjs.map +0 -1
  319. package/dist/cjs/cache/pipes.min.cjs +0 -2
  320. package/dist/cjs/cache/pipes.min.cjs.map +0 -1
  321. package/dist/cjs/cache/types/in-memory.cjs +0 -47
  322. package/dist/cjs/cache/types/in-memory.cjs.map +0 -1
  323. package/dist/cjs/cache/types/in-memory.min.cjs +0 -2
  324. package/dist/cjs/cache/types/in-memory.min.cjs.map +0 -1
  325. package/dist/cjs/cache/types/redis.cjs +0 -55
  326. package/dist/cjs/cache/types/redis.cjs.map +0 -1
  327. package/dist/cjs/cache/types/redis.min.cjs +0 -2
  328. package/dist/cjs/cache/types/redis.min.cjs.map +0 -1
  329. package/dist/cjs/dbs/base/changes.cjs +0 -36
  330. package/dist/cjs/dbs/base/changes.cjs.map +0 -1
  331. package/dist/cjs/dbs/base/changes.min.cjs +0 -2
  332. package/dist/cjs/dbs/base/changes.min.cjs.map +0 -1
  333. package/dist/cjs/dbs/base/core.cjs +0 -1
  334. package/dist/cjs/dbs/base/core.cjs.map +0 -1
  335. package/dist/cjs/dbs/base/core.min.cjs +0 -1
  336. package/dist/cjs/dbs/base/core.min.cjs.map +0 -1
  337. package/dist/cjs/dbs/base/db.cjs +0 -14
  338. package/dist/cjs/dbs/base/db.cjs.map +0 -1
  339. package/dist/cjs/dbs/base/db.min.cjs +0 -2
  340. package/dist/cjs/dbs/base/db.min.cjs.map +0 -1
  341. package/dist/cjs/dbs/base/types.cjs +0 -2
  342. package/dist/cjs/dbs/base/types.cjs.map +0 -1
  343. package/dist/cjs/dbs/base/types.min.cjs +0 -2
  344. package/dist/cjs/dbs/base/types.min.cjs.map +0 -1
  345. package/dist/cjs/dbs/mongo/changes.cjs +0 -81
  346. package/dist/cjs/dbs/mongo/changes.cjs.map +0 -1
  347. package/dist/cjs/dbs/mongo/changes.min.cjs +0 -2
  348. package/dist/cjs/dbs/mongo/changes.min.cjs.map +0 -1
  349. package/dist/cjs/dbs/mongo/db.cjs +0 -225
  350. package/dist/cjs/dbs/mongo/db.cjs.map +0 -1
  351. package/dist/cjs/dbs/mongo/db.min.cjs +0 -2
  352. package/dist/cjs/dbs/mongo/db.min.cjs.map +0 -1
  353. package/dist/cjs/dbs/mongo/query.cjs +0 -66
  354. package/dist/cjs/dbs/mongo/query.cjs.map +0 -1
  355. package/dist/cjs/dbs/mongo/query.min.cjs +0 -2
  356. package/dist/cjs/dbs/mongo/query.min.cjs.map +0 -1
  357. package/dist/cjs/dbs/pipes.cjs +0 -104
  358. package/dist/cjs/dbs/pipes.cjs.map +0 -1
  359. package/dist/cjs/dbs/pipes.min.cjs +0 -2
  360. package/dist/cjs/dbs/pipes.min.cjs.map +0 -1
  361. package/dist/cjs/errors/equippedError.cjs +0 -12
  362. package/dist/cjs/errors/equippedError.cjs.map +0 -1
  363. package/dist/cjs/errors/equippedError.min.cjs +0 -2
  364. package/dist/cjs/errors/equippedError.min.cjs.map +0 -1
  365. package/dist/cjs/errors/requestError.cjs +0 -12
  366. package/dist/cjs/errors/requestError.cjs.map +0 -1
  367. package/dist/cjs/errors/requestError.min.cjs +0 -2
  368. package/dist/cjs/errors/requestError.min.cjs.map +0 -1
  369. package/dist/cjs/errors/types/badRequestError.cjs +0 -12
  370. package/dist/cjs/errors/types/badRequestError.cjs.map +0 -1
  371. package/dist/cjs/errors/types/badRequestError.min.cjs +0 -2
  372. package/dist/cjs/errors/types/badRequestError.min.cjs.map +0 -1
  373. package/dist/cjs/errors/types/notAuthenticatedError.cjs +0 -12
  374. package/dist/cjs/errors/types/notAuthenticatedError.cjs.map +0 -1
  375. package/dist/cjs/errors/types/notAuthenticatedError.min.cjs +0 -2
  376. package/dist/cjs/errors/types/notAuthenticatedError.min.cjs.map +0 -1
  377. package/dist/cjs/errors/types/notAuthorizedError.cjs +0 -12
  378. package/dist/cjs/errors/types/notAuthorizedError.cjs.map +0 -1
  379. package/dist/cjs/errors/types/notAuthorizedError.min.cjs +0 -2
  380. package/dist/cjs/errors/types/notAuthorizedError.min.cjs.map +0 -1
  381. package/dist/cjs/errors/types/notFoundError.cjs +0 -12
  382. package/dist/cjs/errors/types/notFoundError.cjs.map +0 -1
  383. package/dist/cjs/errors/types/notFoundError.min.cjs +0 -2
  384. package/dist/cjs/errors/types/notFoundError.min.cjs.map +0 -1
  385. package/dist/cjs/errors/types/tokenExpired.cjs +0 -12
  386. package/dist/cjs/errors/types/tokenExpired.cjs.map +0 -1
  387. package/dist/cjs/errors/types/tokenExpired.min.cjs +0 -2
  388. package/dist/cjs/errors/types/tokenExpired.min.cjs.map +0 -1
  389. package/dist/cjs/errors/types/validationError.cjs +0 -16
  390. package/dist/cjs/errors/types/validationError.cjs.map +0 -1
  391. package/dist/cjs/errors/types/validationError.min.cjs +0 -2
  392. package/dist/cjs/errors/types/validationError.min.cjs.map +0 -1
  393. package/dist/cjs/events/base.cjs +0 -6
  394. package/dist/cjs/events/base.cjs.map +0 -1
  395. package/dist/cjs/events/base.min.cjs +0 -2
  396. package/dist/cjs/events/base.min.cjs.map +0 -1
  397. package/dist/cjs/events/pipes.cjs +0 -28
  398. package/dist/cjs/events/pipes.cjs.map +0 -1
  399. package/dist/cjs/events/pipes.min.cjs +0 -2
  400. package/dist/cjs/events/pipes.min.cjs.map +0 -1
  401. package/dist/cjs/events/types/kafka.cjs +0 -80
  402. package/dist/cjs/events/types/kafka.cjs.map +0 -1
  403. package/dist/cjs/events/types/kafka.min.cjs +0 -2
  404. package/dist/cjs/events/types/kafka.min.cjs.map +0 -1
  405. package/dist/cjs/events/types/rabbitmq.cjs +0 -54
  406. package/dist/cjs/events/types/rabbitmq.cjs.map +0 -1
  407. package/dist/cjs/events/types/rabbitmq.min.cjs +0 -2
  408. package/dist/cjs/events/types/rabbitmq.min.cjs.map +0 -1
  409. package/dist/cjs/instance/hooks.cjs +0 -26
  410. package/dist/cjs/instance/hooks.cjs.map +0 -1
  411. package/dist/cjs/instance/hooks.min.cjs +0 -2
  412. package/dist/cjs/instance/hooks.min.cjs.map +0 -1
  413. package/dist/cjs/instance/settings.cjs +0 -57
  414. package/dist/cjs/instance/settings.cjs.map +0 -1
  415. package/dist/cjs/instance/settings.min.cjs +0 -2
  416. package/dist/cjs/instance/settings.min.cjs.map +0 -1
  417. package/dist/cjs/jobs/pipes.cjs +0 -13
  418. package/dist/cjs/jobs/pipes.cjs.map +0 -1
  419. package/dist/cjs/jobs/pipes.min.cjs +0 -2
  420. package/dist/cjs/jobs/pipes.min.cjs.map +0 -1
  421. package/dist/cjs/jobs/types/redis.cjs +0 -106
  422. package/dist/cjs/jobs/types/redis.cjs.map +0 -1
  423. package/dist/cjs/jobs/types/redis.min.cjs +0 -2
  424. package/dist/cjs/jobs/types/redis.min.cjs.map +0 -1
  425. package/dist/cjs/server/impls/base.cjs +0 -211
  426. package/dist/cjs/server/impls/base.cjs.map +0 -1
  427. package/dist/cjs/server/impls/base.min.cjs +0 -2
  428. package/dist/cjs/server/impls/base.min.cjs.map +0 -1
  429. package/dist/cjs/server/impls/express.cjs +0 -111
  430. package/dist/cjs/server/impls/express.cjs.map +0 -1
  431. package/dist/cjs/server/impls/express.min.cjs +0 -2
  432. package/dist/cjs/server/impls/express.min.cjs.map +0 -1
  433. package/dist/cjs/server/impls/fastify.cjs +0 -121
  434. package/dist/cjs/server/impls/fastify.cjs.map +0 -1
  435. package/dist/cjs/server/impls/fastify.min.cjs +0 -2
  436. package/dist/cjs/server/impls/fastify.min.cjs.map +0 -1
  437. package/dist/cjs/server/middlewares/index.cjs +0 -2
  438. package/dist/cjs/server/middlewares/index.cjs.map +0 -1
  439. package/dist/cjs/server/middlewares/index.min.cjs +0 -2
  440. package/dist/cjs/server/middlewares/index.min.cjs.map +0 -1
  441. package/dist/cjs/server/middlewares/requireAuthUser.cjs +0 -22
  442. package/dist/cjs/server/middlewares/requireAuthUser.cjs.map +0 -1
  443. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs +0 -2
  444. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs.map +0 -1
  445. package/dist/cjs/server/openapi.cjs +0 -191
  446. package/dist/cjs/server/openapi.cjs.map +0 -1
  447. package/dist/cjs/server/openapi.min.cjs +0 -30
  448. package/dist/cjs/server/openapi.min.cjs.map +0 -1
  449. package/dist/cjs/server/pipes.cjs +0 -67
  450. package/dist/cjs/server/pipes.cjs.map +0 -1
  451. package/dist/cjs/server/pipes.min.cjs +0 -2
  452. package/dist/cjs/server/pipes.min.cjs.map +0 -1
  453. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs +0 -21
  454. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs.map +0 -1
  455. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs +0 -2
  456. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs.map +0 -1
  457. package/dist/cjs/server/requests-auth-methods/base.cjs +0 -20
  458. package/dist/cjs/server/requests-auth-methods/base.cjs.map +0 -1
  459. package/dist/cjs/server/requests-auth-methods/base.min.cjs +0 -2
  460. package/dist/cjs/server/requests-auth-methods/base.min.cjs.map +0 -1
  461. package/dist/cjs/server/requests-auth-methods/index.cjs +0 -4
  462. package/dist/cjs/server/requests-auth-methods/index.cjs.map +0 -1
  463. package/dist/cjs/server/requests-auth-methods/index.min.cjs +0 -2
  464. package/dist/cjs/server/requests-auth-methods/index.min.cjs.map +0 -1
  465. package/dist/cjs/server/requests-auth-methods/jwt.cjs +0 -78
  466. package/dist/cjs/server/requests-auth-methods/jwt.cjs.map +0 -1
  467. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs +0 -2
  468. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs.map +0 -1
  469. package/dist/cjs/server/requests.cjs +0 -80
  470. package/dist/cjs/server/requests.cjs.map +0 -1
  471. package/dist/cjs/server/requests.min.cjs +0 -2
  472. package/dist/cjs/server/requests.min.cjs.map +0 -1
  473. package/dist/cjs/server/routes.cjs +0 -74
  474. package/dist/cjs/server/routes.cjs.map +0 -1
  475. package/dist/cjs/server/routes.min.cjs +0 -2
  476. package/dist/cjs/server/routes.min.cjs.map +0 -1
  477. package/dist/cjs/server/sockets.cjs +0 -126
  478. package/dist/cjs/server/sockets.cjs.map +0 -1
  479. package/dist/cjs/server/sockets.min.cjs +0 -2
  480. package/dist/cjs/server/sockets.min.cjs.map +0 -1
  481. package/dist/cjs/server/types.cjs +0 -34
  482. package/dist/cjs/server/types.cjs.map +0 -1
  483. package/dist/cjs/server/types.min.cjs +0 -2
  484. package/dist/cjs/server/types.min.cjs.map +0 -1
  485. package/dist/cjs/types/overrides.cjs +0 -1
  486. package/dist/cjs/types/overrides.cjs.map +0 -1
  487. package/dist/cjs/types/overrides.min.cjs +0 -1
  488. package/dist/cjs/types/overrides.min.cjs.map +0 -1
  489. package/dist/cjs/utilities/authProviders.cjs +0 -53
  490. package/dist/cjs/utilities/authProviders.cjs.map +0 -1
  491. package/dist/cjs/utilities/authProviders.min.cjs +0 -2
  492. package/dist/cjs/utilities/authProviders.min.cjs.map +0 -1
  493. package/dist/cjs/utilities/hash.cjs +0 -17
  494. package/dist/cjs/utilities/hash.cjs.map +0 -1
  495. package/dist/cjs/utilities/hash.min.cjs +0 -2
  496. package/dist/cjs/utilities/hash.min.cjs.map +0 -1
  497. package/dist/cjs/utilities/json.cjs +0 -16
  498. package/dist/cjs/utilities/json.cjs.map +0 -1
  499. package/dist/cjs/utilities/json.min.cjs +0 -2
  500. package/dist/cjs/utilities/json.min.cjs.map +0 -1
  501. package/dist/cjs/utilities/media.cjs +0 -13
  502. package/dist/cjs/utilities/media.cjs.map +0 -1
  503. package/dist/cjs/utilities/media.min.cjs +0 -2
  504. package/dist/cjs/utilities/media.min.cjs.map +0 -1
  505. package/dist/cjs/utilities/random.cjs +0 -12
  506. package/dist/cjs/utilities/random.cjs.map +0 -1
  507. package/dist/cjs/utilities/random.min.cjs +0 -2
  508. package/dist/cjs/utilities/random.min.cjs.map +0 -1
  509. package/dist/cjs/utilities/retry.cjs +0 -14
  510. package/dist/cjs/utilities/retry.cjs.map +0 -1
  511. package/dist/cjs/utilities/retry.min.cjs +0 -2
  512. package/dist/cjs/utilities/retry.min.cjs.map +0 -1
  513. package/dist/cjs/validations/valleyed.cjs +0 -43
  514. package/dist/cjs/validations/valleyed.cjs.map +0 -1
  515. package/dist/cjs/validations/valleyed.min.cjs +0 -2
  516. package/dist/cjs/validations/valleyed.min.cjs.map +0 -1
  517. package/dist/esm/audit/events.min.mjs +0 -2
  518. package/dist/esm/audit/events.min.mjs.map +0 -1
  519. package/dist/esm/audit/events.mjs +0 -101
  520. package/dist/esm/audit/events.mjs.map +0 -1
  521. package/dist/esm/audit/index.min.mjs +0 -2
  522. package/dist/esm/audit/index.min.mjs.map +0 -1
  523. package/dist/esm/audit/index.mjs +0 -2
  524. package/dist/esm/audit/index.mjs.map +0 -1
  525. package/dist/esm/cache/base.min.mjs +0 -2
  526. package/dist/esm/cache/base.min.mjs.map +0 -1
  527. package/dist/esm/cache/base.mjs +0 -6
  528. package/dist/esm/cache/base.mjs.map +0 -1
  529. package/dist/esm/cache/pipes.min.mjs +0 -2
  530. package/dist/esm/cache/pipes.min.mjs.map +0 -1
  531. package/dist/esm/cache/pipes.mjs +0 -16
  532. package/dist/esm/cache/pipes.mjs.map +0 -1
  533. package/dist/esm/cache/types/in-memory.min.mjs +0 -2
  534. package/dist/esm/cache/types/in-memory.min.mjs.map +0 -1
  535. package/dist/esm/cache/types/in-memory.mjs +0 -47
  536. package/dist/esm/cache/types/in-memory.mjs.map +0 -1
  537. package/dist/esm/cache/types/redis.min.mjs +0 -2
  538. package/dist/esm/cache/types/redis.min.mjs.map +0 -1
  539. package/dist/esm/cache/types/redis.mjs +0 -55
  540. package/dist/esm/cache/types/redis.mjs.map +0 -1
  541. package/dist/esm/dbs/base/changes.min.mjs +0 -2
  542. package/dist/esm/dbs/base/changes.min.mjs.map +0 -1
  543. package/dist/esm/dbs/base/changes.mjs +0 -36
  544. package/dist/esm/dbs/base/changes.mjs.map +0 -1
  545. package/dist/esm/dbs/base/core.min.mjs +0 -1
  546. package/dist/esm/dbs/base/core.mjs +0 -1
  547. package/dist/esm/dbs/base/db.min.mjs +0 -2
  548. package/dist/esm/dbs/base/db.min.mjs.map +0 -1
  549. package/dist/esm/dbs/base/db.mjs +0 -14
  550. package/dist/esm/dbs/base/db.mjs.map +0 -1
  551. package/dist/esm/dbs/base/types.min.mjs +0 -2
  552. package/dist/esm/dbs/base/types.min.mjs.map +0 -1
  553. package/dist/esm/dbs/base/types.mjs +0 -2
  554. package/dist/esm/dbs/base/types.mjs.map +0 -1
  555. package/dist/esm/dbs/mongo/changes.min.mjs +0 -2
  556. package/dist/esm/dbs/mongo/changes.min.mjs.map +0 -1
  557. package/dist/esm/dbs/mongo/changes.mjs +0 -81
  558. package/dist/esm/dbs/mongo/changes.mjs.map +0 -1
  559. package/dist/esm/dbs/mongo/db.min.mjs +0 -2
  560. package/dist/esm/dbs/mongo/db.min.mjs.map +0 -1
  561. package/dist/esm/dbs/mongo/db.mjs +0 -225
  562. package/dist/esm/dbs/mongo/db.mjs.map +0 -1
  563. package/dist/esm/dbs/mongo/query.min.mjs +0 -2
  564. package/dist/esm/dbs/mongo/query.min.mjs.map +0 -1
  565. package/dist/esm/dbs/mongo/query.mjs +0 -66
  566. package/dist/esm/dbs/mongo/query.mjs.map +0 -1
  567. package/dist/esm/dbs/pipes.min.mjs +0 -2
  568. package/dist/esm/dbs/pipes.min.mjs.map +0 -1
  569. package/dist/esm/dbs/pipes.mjs +0 -104
  570. package/dist/esm/dbs/pipes.mjs.map +0 -1
  571. package/dist/esm/errors/equippedError.min.mjs +0 -2
  572. package/dist/esm/errors/equippedError.min.mjs.map +0 -1
  573. package/dist/esm/errors/equippedError.mjs +0 -12
  574. package/dist/esm/errors/equippedError.mjs.map +0 -1
  575. package/dist/esm/errors/requestError.min.mjs +0 -2
  576. package/dist/esm/errors/requestError.min.mjs.map +0 -1
  577. package/dist/esm/errors/requestError.mjs +0 -12
  578. package/dist/esm/errors/requestError.mjs.map +0 -1
  579. package/dist/esm/errors/types/badRequestError.min.mjs +0 -2
  580. package/dist/esm/errors/types/badRequestError.min.mjs.map +0 -1
  581. package/dist/esm/errors/types/badRequestError.mjs +0 -12
  582. package/dist/esm/errors/types/badRequestError.mjs.map +0 -1
  583. package/dist/esm/errors/types/notAuthenticatedError.min.mjs +0 -2
  584. package/dist/esm/errors/types/notAuthenticatedError.min.mjs.map +0 -1
  585. package/dist/esm/errors/types/notAuthenticatedError.mjs +0 -12
  586. package/dist/esm/errors/types/notAuthenticatedError.mjs.map +0 -1
  587. package/dist/esm/errors/types/notAuthorizedError.min.mjs +0 -2
  588. package/dist/esm/errors/types/notAuthorizedError.min.mjs.map +0 -1
  589. package/dist/esm/errors/types/notAuthorizedError.mjs +0 -12
  590. package/dist/esm/errors/types/notAuthorizedError.mjs.map +0 -1
  591. package/dist/esm/errors/types/notFoundError.min.mjs +0 -2
  592. package/dist/esm/errors/types/notFoundError.min.mjs.map +0 -1
  593. package/dist/esm/errors/types/notFoundError.mjs +0 -12
  594. package/dist/esm/errors/types/notFoundError.mjs.map +0 -1
  595. package/dist/esm/errors/types/tokenExpired.min.mjs +0 -2
  596. package/dist/esm/errors/types/tokenExpired.min.mjs.map +0 -1
  597. package/dist/esm/errors/types/tokenExpired.mjs +0 -12
  598. package/dist/esm/errors/types/tokenExpired.mjs.map +0 -1
  599. package/dist/esm/errors/types/validationError.min.mjs +0 -2
  600. package/dist/esm/errors/types/validationError.min.mjs.map +0 -1
  601. package/dist/esm/errors/types/validationError.mjs +0 -16
  602. package/dist/esm/errors/types/validationError.mjs.map +0 -1
  603. package/dist/esm/events/base.min.mjs +0 -2
  604. package/dist/esm/events/base.min.mjs.map +0 -1
  605. package/dist/esm/events/base.mjs +0 -6
  606. package/dist/esm/events/base.mjs.map +0 -1
  607. package/dist/esm/events/pipes.min.mjs +0 -2
  608. package/dist/esm/events/pipes.min.mjs.map +0 -1
  609. package/dist/esm/events/pipes.mjs +0 -28
  610. package/dist/esm/events/pipes.mjs.map +0 -1
  611. package/dist/esm/events/types/kafka.min.mjs +0 -2
  612. package/dist/esm/events/types/kafka.min.mjs.map +0 -1
  613. package/dist/esm/events/types/kafka.mjs.map +0 -1
  614. package/dist/esm/events/types/rabbitmq.min.mjs +0 -2
  615. package/dist/esm/events/types/rabbitmq.min.mjs.map +0 -1
  616. package/dist/esm/events/types/rabbitmq.mjs +0 -54
  617. package/dist/esm/events/types/rabbitmq.mjs.map +0 -1
  618. package/dist/esm/instance/hooks.min.mjs +0 -2
  619. package/dist/esm/instance/hooks.min.mjs.map +0 -1
  620. package/dist/esm/instance/hooks.mjs +0 -26
  621. package/dist/esm/instance/hooks.mjs.map +0 -1
  622. package/dist/esm/instance/settings.min.mjs +0 -2
  623. package/dist/esm/instance/settings.min.mjs.map +0 -1
  624. package/dist/esm/instance/settings.mjs +0 -57
  625. package/dist/esm/instance/settings.mjs.map +0 -1
  626. package/dist/esm/jobs/pipes.min.mjs +0 -2
  627. package/dist/esm/jobs/pipes.min.mjs.map +0 -1
  628. package/dist/esm/jobs/pipes.mjs +0 -13
  629. package/dist/esm/jobs/pipes.mjs.map +0 -1
  630. package/dist/esm/jobs/types/redis.min.mjs +0 -2
  631. package/dist/esm/jobs/types/redis.min.mjs.map +0 -1
  632. package/dist/esm/jobs/types/redis.mjs.map +0 -1
  633. package/dist/esm/server/impls/base.min.mjs +0 -2
  634. package/dist/esm/server/impls/base.min.mjs.map +0 -1
  635. package/dist/esm/server/impls/base.mjs +0 -211
  636. package/dist/esm/server/impls/base.mjs.map +0 -1
  637. package/dist/esm/server/impls/express.min.mjs +0 -2
  638. package/dist/esm/server/impls/express.min.mjs.map +0 -1
  639. package/dist/esm/server/impls/express.mjs +0 -111
  640. package/dist/esm/server/impls/express.mjs.map +0 -1
  641. package/dist/esm/server/impls/fastify.min.mjs +0 -2
  642. package/dist/esm/server/impls/fastify.min.mjs.map +0 -1
  643. package/dist/esm/server/impls/fastify.mjs +0 -121
  644. package/dist/esm/server/impls/fastify.mjs.map +0 -1
  645. package/dist/esm/server/middlewares/index.min.mjs +0 -2
  646. package/dist/esm/server/middlewares/index.min.mjs.map +0 -1
  647. package/dist/esm/server/middlewares/index.mjs +0 -2
  648. package/dist/esm/server/middlewares/index.mjs.map +0 -1
  649. package/dist/esm/server/middlewares/requireAuthUser.min.mjs +0 -2
  650. package/dist/esm/server/middlewares/requireAuthUser.min.mjs.map +0 -1
  651. package/dist/esm/server/middlewares/requireAuthUser.mjs +0 -22
  652. package/dist/esm/server/middlewares/requireAuthUser.mjs.map +0 -1
  653. package/dist/esm/server/openapi.min.mjs +0 -30
  654. package/dist/esm/server/openapi.min.mjs.map +0 -1
  655. package/dist/esm/server/openapi.mjs +0 -191
  656. package/dist/esm/server/openapi.mjs.map +0 -1
  657. package/dist/esm/server/pipes.min.mjs +0 -2
  658. package/dist/esm/server/pipes.min.mjs.map +0 -1
  659. package/dist/esm/server/pipes.mjs +0 -67
  660. package/dist/esm/server/pipes.mjs.map +0 -1
  661. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs +0 -2
  662. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs.map +0 -1
  663. package/dist/esm/server/requests-auth-methods/apiKeys.mjs +0 -21
  664. package/dist/esm/server/requests-auth-methods/apiKeys.mjs.map +0 -1
  665. package/dist/esm/server/requests-auth-methods/base.min.mjs +0 -2
  666. package/dist/esm/server/requests-auth-methods/base.min.mjs.map +0 -1
  667. package/dist/esm/server/requests-auth-methods/base.mjs +0 -20
  668. package/dist/esm/server/requests-auth-methods/base.mjs.map +0 -1
  669. package/dist/esm/server/requests-auth-methods/index.min.mjs +0 -2
  670. package/dist/esm/server/requests-auth-methods/index.min.mjs.map +0 -1
  671. package/dist/esm/server/requests-auth-methods/index.mjs +0 -4
  672. package/dist/esm/server/requests-auth-methods/index.mjs.map +0 -1
  673. package/dist/esm/server/requests-auth-methods/jwt.min.mjs +0 -2
  674. package/dist/esm/server/requests-auth-methods/jwt.min.mjs.map +0 -1
  675. package/dist/esm/server/requests-auth-methods/jwt.mjs +0 -78
  676. package/dist/esm/server/requests-auth-methods/jwt.mjs.map +0 -1
  677. package/dist/esm/server/requests.min.mjs +0 -2
  678. package/dist/esm/server/requests.min.mjs.map +0 -1
  679. package/dist/esm/server/requests.mjs +0 -80
  680. package/dist/esm/server/requests.mjs.map +0 -1
  681. package/dist/esm/server/routes.min.mjs +0 -2
  682. package/dist/esm/server/routes.min.mjs.map +0 -1
  683. package/dist/esm/server/routes.mjs +0 -74
  684. package/dist/esm/server/routes.mjs.map +0 -1
  685. package/dist/esm/server/sockets.min.mjs +0 -2
  686. package/dist/esm/server/sockets.min.mjs.map +0 -1
  687. package/dist/esm/server/sockets.mjs +0 -126
  688. package/dist/esm/server/sockets.mjs.map +0 -1
  689. package/dist/esm/server/types.min.mjs +0 -2
  690. package/dist/esm/server/types.min.mjs.map +0 -1
  691. package/dist/esm/server/types.mjs +0 -34
  692. package/dist/esm/server/types.mjs.map +0 -1
  693. package/dist/esm/types/overrides.min.mjs +0 -1
  694. package/dist/esm/types/overrides.mjs +0 -1
  695. package/dist/esm/utilities/authProviders.min.mjs +0 -2
  696. package/dist/esm/utilities/authProviders.min.mjs.map +0 -1
  697. package/dist/esm/utilities/authProviders.mjs +0 -53
  698. package/dist/esm/utilities/authProviders.mjs.map +0 -1
  699. package/dist/esm/utilities/hash.min.mjs +0 -2
  700. package/dist/esm/utilities/hash.min.mjs.map +0 -1
  701. package/dist/esm/utilities/hash.mjs +0 -17
  702. package/dist/esm/utilities/hash.mjs.map +0 -1
  703. package/dist/esm/utilities/json.min.mjs +0 -2
  704. package/dist/esm/utilities/json.min.mjs.map +0 -1
  705. package/dist/esm/utilities/json.mjs +0 -16
  706. package/dist/esm/utilities/json.mjs.map +0 -1
  707. package/dist/esm/utilities/media.min.mjs +0 -2
  708. package/dist/esm/utilities/media.min.mjs.map +0 -1
  709. package/dist/esm/utilities/media.mjs +0 -13
  710. package/dist/esm/utilities/media.mjs.map +0 -1
  711. package/dist/esm/utilities/random.min.mjs +0 -2
  712. package/dist/esm/utilities/random.min.mjs.map +0 -1
  713. package/dist/esm/utilities/random.mjs +0 -12
  714. package/dist/esm/utilities/random.mjs.map +0 -1
  715. package/dist/esm/utilities/retry.min.mjs +0 -2
  716. package/dist/esm/utilities/retry.min.mjs.map +0 -1
  717. package/dist/esm/utilities/retry.mjs +0 -14
  718. package/dist/esm/utilities/retry.mjs.map +0 -1
  719. package/dist/esm/validations/valleyed.min.mjs +0 -2
  720. package/dist/esm/validations/valleyed.min.mjs.map +0 -1
  721. package/dist/esm/validations/valleyed.mjs +0 -43
  722. package/dist/esm/validations/valleyed.mjs.map +0 -1
  723. package/dist/types/audit/events.js +0 -100
  724. package/dist/types/audit/index.d.ts +0 -44
  725. package/dist/types/audit/index.js +0 -1
  726. package/dist/types/cache/base.js +0 -5
  727. package/dist/types/cache/pipes.js +0 -15
  728. package/dist/types/cache/types/in-memory.js +0 -46
  729. package/dist/types/cache/types/redis.js +0 -54
  730. package/dist/types/db-C8YY1yTO.d.ts +0 -14
  731. package/dist/types/db-Dj1SGto0.d.ts +0 -24
  732. package/dist/types/dbs/base/changes.js +0 -35
  733. package/dist/types/dbs/base/core.js +0 -0
  734. package/dist/types/dbs/base/db.js +0 -13
  735. package/dist/types/dbs/base/types.js +0 -1
  736. package/dist/types/dbs/mongo/changes.js +0 -80
  737. package/dist/types/dbs/mongo/db.js +0 -224
  738. package/dist/types/dbs/mongo/query.js +0 -65
  739. package/dist/types/dbs/pipes.js +0 -103
  740. package/dist/types/errors/equippedError.js +0 -11
  741. package/dist/types/errors/requestError.js +0 -11
  742. package/dist/types/errors/types/badRequestError.js +0 -11
  743. package/dist/types/errors/types/notAuthenticatedError.js +0 -11
  744. package/dist/types/errors/types/notAuthorizedError.js +0 -11
  745. package/dist/types/errors/types/notFoundError.js +0 -11
  746. package/dist/types/errors/types/tokenExpired.js +0 -11
  747. package/dist/types/errors/types/validationError.js +0 -15
  748. package/dist/types/events/base.js +0 -5
  749. package/dist/types/events/pipes.js +0 -27
  750. package/dist/types/events/types/rabbitmq.js +0 -53
  751. package/dist/types/instance/hooks.js +0 -25
  752. package/dist/types/instance/settings.js +0 -56
  753. package/dist/types/jobs/pipes.js +0 -12
  754. package/dist/types/kafka-Cf-TUJgv.d.ts +0 -54
  755. package/dist/types/server/impls/base.js +0 -210
  756. package/dist/types/server/impls/express.js +0 -110
  757. package/dist/types/server/impls/fastify.js +0 -120
  758. package/dist/types/server/middlewares/index.js +0 -1
  759. package/dist/types/server/middlewares/requireAuthUser.js +0 -21
  760. package/dist/types/server/openapi.js +0 -190
  761. package/dist/types/server/pipes.js +0 -66
  762. package/dist/types/server/requests-auth-methods/apiKeys.js +0 -20
  763. package/dist/types/server/requests-auth-methods/base.js +0 -19
  764. package/dist/types/server/requests-auth-methods/index.js +0 -3
  765. package/dist/types/server/requests-auth-methods/jwt.js +0 -77
  766. package/dist/types/server/requests.js +0 -79
  767. package/dist/types/server/routes.js +0 -73
  768. package/dist/types/server/sockets.js +0 -125
  769. package/dist/types/server/types.js +0 -33
  770. package/dist/types/types/overrides.js +0 -0
  771. package/dist/types/utilities/authProviders.js +0 -52
  772. package/dist/types/utilities/hash.js +0 -16
  773. package/dist/types/utilities/json.js +0 -15
  774. package/dist/types/utilities/media.js +0 -12
  775. package/dist/types/utilities/random.js +0 -11
  776. package/dist/types/utilities/retry.js +0 -13
  777. package/dist/types/validations/valleyed.js +0 -42
  778. /package/dist/esm/{dbs/base/core.min.mjs.map → cache/adapters/redis/index.min.mjs.map} +0 -0
  779. /package/dist/esm/{dbs/base/core.mjs.map → cache/adapters/redis/index.mjs.map} +0 -0
  780. /package/dist/esm/{types/overrides.min.mjs.map → chunk-AQY7QVYI.min.mjs.map} +0 -0
  781. /package/dist/esm/{types/overrides.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orm/adapters/in-memory/index.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport { v, differ } from 'valleyed'\n\nimport { configurable } from '../../../utilities/configurable'\nimport type { FieldTypeName } from '../../adapter'\nimport { Filter, FilterGroup, type FilterChild } from '../../filter'\nimport type { DiscoveredSchema, ForeignKeyAction } from '../../migrations/introspection-types'\nimport type { AddFieldChange, AddForeignKeyChange, AddIndexChange, AnyFieldSpec, CreateTableChange, DropFieldChange, DropForeignKeyChange, DropIndexChange, DropTableChange, ModifyFieldChange, RenameFieldChange, RenameTableChange } from '../../migrations/types'\nimport { OrmAdapter, type AggregateSpec } from '../../orm-adapter'\nimport type { IterationQueryOptions, QueryOptions } from '../../query-options'\nimport type { AnySchema } from '../../schema'\nimport { IncOp, MaxOp, MinOp, MulOp, PatchOp, PullOp, PushOp, SetOp, UnsetOp, type AnyUpdateOp } from '../../updates'\n\nconst inMemoryConnectionPipe = () => v.object({})\n\nexport type InMemoryRepoConfig = {\n\ttable: string\n\tprefix?: string\n}\n\ntype MigrationRecord = { id: string; appliedAt: number }\ntype TableMeta = { pk: { name: string; type: string }; fields: Map<string, AnyFieldSpec> }\ntype IndexMeta = { table: string; on: readonly string[]; unique: boolean }\ntype ForeignKeyMeta = { table: string; on: string; references: { table: string; column: string }; onDelete?: ForeignKeyAction; onUpdate?: ForeignKeyAction }\n\ntype Snapshot = {\n\tstores: Map<string, Map<string, Record<string, unknown>>>\n\tmigrations: Map<string, MigrationRecord>\n\tindexes: Map<string, IndexMeta>\n\ttables: Map<string, TableMeta>\n\tforeignKeys: Map<string, ForeignKeyMeta>\n}\n\nfunction clone<T>(value: T): T {\n\treturn structuredClone(value)\n}\n\nconst replaceMap = <K, V>(target: Map<K, V>, source: Map<K, V>) => {\n\ttarget.clear()\n\tfor (const [k, val] of source.entries()) target.set(k, val)\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction containsSubset(source: unknown, needle: unknown): boolean {\n\tif (Array.isArray(source)) {\n\t\tconst wanted = Array.isArray(needle) ? needle : [needle]\n\t\treturn wanted.every((item) => source.some((existing) => differ.equal(existing, item)))\n\t}\n\n\tif (isPlainObject(source) && isPlainObject(needle)) {\n\t\treturn Object.entries(needle).every(([k, v]) => containsSubset(source[k], v))\n\t}\n\n\treturn differ.equal(source, needle)\n}\n\nfunction compareValues(a: unknown, b: unknown): number {\n\tif (a === b) return 0\n\tif (a == null) return -1\n\tif (b == null) return 1\n\tif (typeof a === 'number' && typeof b === 'number') return a < b ? -1 : 1\n\tif (typeof a === 'string' && typeof b === 'string') return a < b ? -1 : 1\n\tif (typeof a === 'boolean' && typeof b === 'boolean') return a === false ? -1 : 1\n\tconst sa = JSON.stringify(a)\n\tconst sb = JSON.stringify(b)\n\tif (sa === sb) return 0\n\treturn sa < sb ? -1 : 1\n}\n\nfunction resolveConfigName(_: AnySchema, config: InMemoryRepoConfig): string {\n\treturn `${config.prefix ?? ''}${config.table}`\n}\n\nfunction evaluateFilter(doc: Record<string, unknown>, filter: Filter): boolean {\n\tconst fieldValue = doc[filter.field]\n\tconst value = filter.value\n\n\tswitch (filter.op) {\n\t\tcase 'eq':\n\t\t\treturn differ.equal(fieldValue, value)\n\t\tcase 'ne':\n\t\t\treturn !differ.equal(fieldValue, value)\n\t\tcase 'gt':\n\t\t\treturn compareValues(fieldValue, value) > 0\n\t\tcase 'gte':\n\t\t\treturn compareValues(fieldValue, value) >= 0\n\t\tcase 'lt':\n\t\t\treturn compareValues(fieldValue, value) < 0\n\t\tcase 'lte':\n\t\t\treturn compareValues(fieldValue, value) <= 0\n\t\tcase 'in': {\n\t\t\tif (!Array.isArray(value)) return false\n\t\t\treturn value.some((v) => differ.equal(fieldValue, v))\n\t\t}\n\t\tcase 'notIn': {\n\t\t\tif (!Array.isArray(value)) return true\n\t\t\treturn !value.some((v) => differ.equal(fieldValue, v))\n\t\t}\n\t\tcase 'like':\n\t\t\treturn String(fieldValue ?? '')\n\t\t\t\t.toLowerCase()\n\t\t\t\t.includes(String(value ?? '').toLowerCase())\n\t\tcase 'exists':\n\t\t\treturn fieldValue != null\n\t\tcase 'notExists':\n\t\t\treturn fieldValue == null\n\t\tcase 'contains':\n\t\t\treturn containsSubset(fieldValue, value)\n\t\tcase 'notContains':\n\t\t\treturn !containsSubset(fieldValue, value)\n\t\tdefault:\n\t\t\treturn false\n\t}\n}\n\nfunction evaluateChild(doc: Record<string, unknown>, child: FilterChild): boolean {\n\tif (child instanceof Filter) return evaluateFilter(doc, child)\n\tif (child instanceof FilterGroup) {\n\t\tif (child.op === 'and') return child.children.every((c) => evaluateChild(doc, c))\n\t\tif (child.op === 'or') return child.children.some((c) => evaluateChild(doc, c))\n\t}\n\treturn true\n}\n\nfunction matchesFilter(doc: Record<string, unknown>, group: FilterGroup): boolean {\n\tfor (const clause of group.children) {\n\t\tif (!evaluateChild(doc, clause)) return false\n\t}\n\treturn true\n}\n\nfunction applyOptions(rows: Record<string, unknown>[], options?: QueryOptions): Record<string, unknown>[] {\n\tlet results = rows\n\n\tif (options?.orderBy?.length) {\n\t\tresults = [...results].sort((a, b) => {\n\t\t\tfor (const ord of options.orderBy ?? []) {\n\t\t\t\tconst cmp = compareValues(a[ord.field], b[ord.field])\n\t\t\t\tif (cmp !== 0) return ord.direction === 'asc' ? cmp : -cmp\n\t\t\t}\n\t\t\treturn 0\n\t\t})\n\t}\n\n\tif (options?.offset != null) {\n\t\tresults = results.slice(Math.max(0, options.offset))\n\t}\n\n\tif (options?.limit != null) {\n\t\tresults = results.slice(0, options.limit)\n\t}\n\n\tif (options?.select?.length) {\n\t\tconst fields = new Set<string>(options.select)\n\t\tresults = results.map((row) => {\n\t\t\tconst out: Record<string, unknown> = {}\n\t\t\tfor (const key of fields) out[key] = row[key]\n\t\t\treturn out\n\t\t})\n\t}\n\n\treturn results\n}\n\nfunction applyUpdateOp(current: Record<string, unknown>, key: string, value: unknown) {\n\tif (value instanceof IncOp) {\n\t\tconst base = Number(current[key] ?? 0)\n\t\tcurrent[key] = base + value.value\n\t\treturn\n\t}\n\tif (value instanceof MulOp) {\n\t\tconst base = Number(current[key] ?? 0)\n\t\tcurrent[key] = base * value.value\n\t\treturn\n\t}\n\tif (value instanceof MinOp) {\n\t\tconst base = current[key]\n\t\tcurrent[key] = base == null || compareValues(value.value, base) < 0 ? value.value : base\n\t\treturn\n\t}\n\tif (value instanceof MaxOp) {\n\t\tconst base = current[key]\n\t\tcurrent[key] = base == null || compareValues(value.value, base) > 0 ? value.value : base\n\t\treturn\n\t}\n\tif (value instanceof UnsetOp) {\n\t\tcurrent[key] = null\n\t\treturn\n\t}\n\tif (value instanceof PushOp) {\n\t\tconst arr = Array.isArray(current[key]) ? [...(current[key] as unknown[])] : []\n\t\tarr.push(clone(value.value))\n\t\tcurrent[key] = arr\n\t\treturn\n\t}\n\tif (value instanceof PullOp) {\n\t\tconst arr = Array.isArray(current[key]) ? (current[key] as unknown[]) : []\n\t\tcurrent[key] = arr.filter((entry) => !differ.equal(entry, value.value))\n\t\treturn\n\t}\n\tif (value instanceof PatchOp) {\n\t\tconst target = isPlainObject(current[key]) ? clone(current[key] as Record<string, unknown>) : {}\n\t\tif (isPlainObject(value.value)) {\n\t\t\tfor (const [k, v] of Object.entries(value.value as Record<string, unknown>)) {\n\t\t\t\ttarget[k] = clone(v)\n\t\t\t}\n\t\t}\n\t\tcurrent[key] = target\n\t\treturn\n\t}\n\tcurrent[key] = clone(value)\n}\n\nfunction applyUpdateData(doc: Record<string, unknown>, data: Record<string, unknown>): Record<string, unknown> {\n\tconst updated = clone(doc)\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tapplyUpdateOp(updated, key, value)\n\t}\n\treturn updated\n}\n\nfunction applyOps(doc: Record<string, unknown>, ops: AnyUpdateOp[]): Record<string, unknown> {\n\tconst updated = clone(doc)\n\tfor (const op of ops) {\n\t\tif (op instanceof SetOp) {\n\t\t\tfor (const [key, value] of Object.entries(op.values)) {\n\t\t\t\tupdated[key] = clone(value)\n\t\t\t}\n\t\t} else {\n\t\t\tapplyUpdateOp(updated, op.field, op)\n\t\t}\n\t}\n\treturn updated\n}\n\nconst sessionActiveStore = new AsyncLocalStorage<boolean>()\n\nexport class InMemoryAdapter extends configurable(inMemoryConnectionPipe, OrmAdapter) {\n\treadonly schemaConfigPipe = v.object({ table: v.string() })\n\n\treadonly supportedFieldTypes = ['string', 'number', 'boolean', 'null', 'object', 'array', 'date'] as const\n\treadonly queryableOps = ['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'in', 'notIn', 'like', 'exists', 'notExists', 'contains', 'notContains'] as const\n\treadonly updateOps = ['set', 'inc', 'mul', 'min', 'max', 'unset', 'push', 'pull', 'patch'] as const\n\treadonly aggregateOps = ['count', 'countDistinct', 'sum', 'avg', 'min', 'max'] as const\n\n\treadonly stores = new Map<string, Map<string, Record<string, unknown>>>()\n\treadonly migrations = new Map<string, MigrationRecord>()\n\treadonly indexes = new Map<string, IndexMeta>()\n\treadonly tables = new Map<string, TableMeta>()\n\treadonly foreignKeys = new Map<string, ForeignKeyMeta>()\n\n\t#migrationLock: Promise<void> = Promise.resolve()\n\n\tprotected constructor(config: typeof InMemoryAdapter.Config) {\n\t\tsuper(config)\n\t}\n\n\t#getStore(name: string) {\n\t\tif (!this.stores.has(name)) this.stores.set(name, new Map())\n\t\treturn this.stores.get(name)!\n\t}\n\n\t#resolveStore(schema: AnySchema, config: unknown) {\n\t\treturn this.#getStore(resolveConfigName(schema, config as InMemoryRepoConfig))\n\t}\n\n\t#snapshot(): Snapshot {\n\t\tconst stores = new Map<string, Map<string, Record<string, unknown>>>()\n\t\tfor (const [name, store] of this.stores.entries()) {\n\t\t\tconst storeCopy = new Map<string, Record<string, unknown>>()\n\t\t\tfor (const [id, doc] of store.entries()) {\n\t\t\t\tstoreCopy.set(id, clone(doc))\n\t\t\t}\n\t\t\tstores.set(name, storeCopy)\n\t\t}\n\t\tconst migrations = new Map(this.migrations)\n\t\tconst indexes = new Map(this.indexes)\n\t\tconst tables = new Map<string, TableMeta>()\n\t\tfor (const [name, meta] of this.tables.entries()) {\n\t\t\ttables.set(name, { pk: { ...meta.pk }, fields: new Map(meta.fields) })\n\t\t}\n\t\tconst foreignKeys = new Map(this.foreignKeys)\n\t\treturn { stores, migrations, indexes, tables, foreignKeys }\n\t}\n\n\t#restore(snap: Snapshot) {\n\t\treplaceMap(this.stores, snap.stores)\n\t\treplaceMap(this.migrations, snap.migrations)\n\t\treplaceMap(this.indexes, snap.indexes)\n\t\treplaceMap(this.tables, snap.tables)\n\t\treplaceMap(this.foreignKeys, snap.foreignKeys)\n\t}\n\n\tasync findByPk(schema: AnySchema, config: unknown, pk: unknown) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst doc = store.get(String(pk))\n\t\treturn doc ? clone(doc) : null\n\t}\n\n\tasync createMany(schema: AnySchema, config: unknown, data: Record<string, unknown>[]) {\n\t\tconst pk = schema.pkField.name\n\t\tconst store = this.#resolveStore(schema, config)\n\t\treturn data.map((d) => {\n\t\t\tconst row = clone(d)\n\t\t\tstore.set(String(row[pk]), row)\n\t\t\treturn clone(row)\n\t\t})\n\t}\n\n\tasync deleteByPk(schema: AnySchema, config: unknown, pk: unknown) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst pkStr = String(pk)\n\t\tconst doc = store.get(pkStr)\n\t\tif (!doc) return null\n\t\tstore.delete(pkStr)\n\t\treturn clone(doc)\n\t}\n\n\tasync updateByPk(schema: AnySchema, config: unknown, pk: unknown, ops: AnyUpdateOp[]) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst pkStr = String(pk)\n\t\tconst doc = store.get(pkStr)\n\t\tif (!doc) return null\n\t\tconst updated = applyOps(doc, ops)\n\t\tstore.set(pkStr, updated)\n\t\treturn clone(updated)\n\t}\n\n\tasync findMany(schema: AnySchema, config: unknown, group: FilterGroup, options?: QueryOptions) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst rows = [...store.values()].filter((doc) => matchesFilter(doc, group)).map((doc) => clone(doc))\n\t\treturn applyOptions(rows, options)\n\t}\n\n\tasync count(schema: AnySchema, config: unknown, group: FilterGroup) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\treturn [...store.values()].filter((doc) => matchesFilter(doc, group)).length\n\t}\n\n\tasync *iterateMany(schema: AnySchema, config: unknown, group: FilterGroup, options?: IterationQueryOptions) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst rows = applyOptions([...store.values()].filter((doc) => matchesFilter(doc, group)).map((doc) => clone(doc)), options)\n\t\tconst batchSize = typeof options?.batchSize === 'number' && Number.isSafeInteger(options.batchSize) && options.batchSize > 0 ? options.batchSize : 1\n\t\tfor (let start = 0; start < rows.length; start += batchSize) {\n\t\t\tfor (const row of rows.slice(start, start + batchSize)) {\n\t\t\t\tyield row\n\t\t\t}\n\t\t}\n\t}\n\n\tasync updateMany(schema: AnySchema, config: unknown, group: FilterGroup, data: Record<string, unknown>) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst ids = [...store.entries()].filter(([, doc]) => matchesFilter(doc, group)).map(([id]) => id)\n\n\t\tconst updated: Record<string, unknown>[] = []\n\t\tfor (const id of ids) {\n\t\t\tconst current = store.get(id)\n\t\t\tif (!current) continue\n\t\t\tconst next = applyUpdateData(current, data)\n\t\t\tstore.set(id, next)\n\t\t\tupdated.push(clone(next))\n\t\t}\n\t\treturn updated\n\t}\n\n\tasync deleteMany(schema: AnySchema, config: unknown, filter: FilterGroup) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst pk = schema.pkField.name\n\t\tconst rows = [...store.values()].filter((doc) => matchesFilter(doc, filter)).map((doc) => clone(doc))\n\t\tfor (const row of rows) store.delete(String(row[pk]))\n\t\treturn rows\n\t}\n\n\tasync upsertOne(schema: AnySchema, config: unknown, filter: FilterGroup, create: Record<string, unknown>, ops: AnyUpdateOp[]) {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tconst pk = schema.pkField.name\n\t\tconst rows = [...store.values()].filter((doc) => matchesFilter(doc, filter))\n\t\tconst current = rows[0]\n\t\tif (current) {\n\t\t\tconst next = ops.length > 0 ? applyOps(current, ops) : clone(current)\n\t\t\tstore.set(String(next[pk]), next)\n\t\t\treturn clone(next)\n\t\t}\n\t\tconst base = clone(create)\n\t\tconst result = ops.length > 0 ? applyOps(base, ops) : base\n\t\tstore.set(String(result[pk]), result)\n\t\treturn clone(result)\n\t}\n\n\tasync aggregate(schema: AnySchema, config: unknown, spec: AggregateSpec): Promise<Array<Record<string, unknown>>> {\n\t\tconst store = this.#resolveStore(schema, config)\n\t\tlet rows = [...store.values()]\n\t\tif (spec.where) {\n\t\t\tconst where = spec.where\n\t\t\trows = rows.filter((doc) => matchesFilter(doc, where))\n\t\t}\n\n\t\tconst groups = new Map<string, Record<string, unknown>[]>()\n\t\tif (spec.groupBy.length > 0) {\n\t\t\tfor (const row of rows) {\n\t\t\t\tconst key = JSON.stringify(spec.groupBy.map((f) => row[f]))\n\t\t\t\tif (!groups.has(key)) groups.set(key, [])\n\t\t\t\tgroups.get(key)!.push(row)\n\t\t\t}\n\t\t} else {\n\t\t\tgroups.set('__all__', rows)\n\t\t}\n\n\t\tconst results: Record<string, unknown>[] = []\n\t\tfor (const [, groupRows] of groups) {\n\t\t\tconst result: Record<string, unknown> = {}\n\t\t\tif (spec.groupBy.length > 0) {\n\t\t\t\tfor (const field of spec.groupBy) {\n\t\t\t\t\tresult[field] = groupRows[0][field]\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const agg of spec.aggregates) {\n\t\t\t\tswitch (agg.fn) {\n\t\t\t\t\tcase 'count':\n\t\t\t\t\t\tresult[agg.alias] = groupRows.length\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'countDistinct': {\n\t\t\t\t\t\tconst vals = new Set(groupRows.map((r) => JSON.stringify(r[agg.field!])))\n\t\t\t\t\t\tresult[agg.alias] = vals.size\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase 'sum':\n\t\t\t\t\t\tresult[agg.alias] = groupRows.reduce((acc, r) => acc + Number(r[agg.field!] ?? 0), 0)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'avg': {\n\t\t\t\t\t\tconst sum = groupRows.reduce((acc, r) => acc + Number(r[agg.field!] ?? 0), 0)\n\t\t\t\t\t\tresult[agg.alias] = groupRows.length > 0 ? sum / groupRows.length : 0\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase 'min': {\n\t\t\t\t\t\tlet minVal: unknown = null\n\t\t\t\t\t\tfor (const r of groupRows) {\n\t\t\t\t\t\t\tconst val = r[agg.field!]\n\t\t\t\t\t\t\tif (val != null && (minVal === null || compareValues(val, minVal) < 0)) minVal = val\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult[agg.alias] = minVal\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase 'max': {\n\t\t\t\t\t\tlet maxVal: unknown = null\n\t\t\t\t\t\tfor (const r of groupRows) {\n\t\t\t\t\t\t\tconst val = r[agg.field!]\n\t\t\t\t\t\t\tif (val != null && (maxVal === null || compareValues(val, maxVal) > 0)) maxVal = val\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult[agg.alias] = maxVal\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tresults.push(result)\n\t\t}\n\n\t\tif (spec.having) {\n\t\t\tconst having = spec.having\n\t\t\treturn results.filter((r) => matchesFilter(r, having))\n\t\t}\n\t\treturn results\n\t}\n\n\tasync loadMigrations(): Promise<{ id: string; appliedAt: number }[]> {\n\t\treturn [...this.migrations.values()].map((m) => ({ id: m.id, appliedAt: m.appliedAt }))\n\t}\n\n\tasync recordMigration(id: string, appliedAt: number): Promise<void> {\n\t\tthis.migrations.set(id, { id, appliedAt })\n\t}\n\n\tasync applyCreateTable(change: CreateTableChange<any>): Promise<void> {\n\t\tconst fields = new Map<string, AnyFieldSpec>()\n\t\tfor (const f of change.fields) {\n\t\t\tfields.set(f.name, { ...f })\n\t\t}\n\t\tthis.tables.set(change.name, { pk: { name: change.pk.name, type: change.pk.type }, fields })\n\t}\n\n\tasync applyDropTable(change: DropTableChange): Promise<void> {\n\t\tthis.tables.delete(change.name)\n\t}\n\n\tasync applyAddField(change: AddFieldChange<any>): Promise<void> {\n\t\tconst table = this.tables.get(change.table)\n\t\tif (table) {\n\t\t\ttable.fields.set(change.field.name, { ...change.field })\n\t\t}\n\t}\n\n\tasync applyDropField(change: DropFieldChange): Promise<void> {\n\t\tconst table = this.tables.get(change.table)\n\t\tif (table) {\n\t\t\ttable.fields.delete(change.name)\n\t\t}\n\t}\n\n\tasync applyModifyField(change: ModifyFieldChange<any>): Promise<void> {\n\t\tconst table = this.tables.get(change.table)\n\t\tif (table) {\n\t\t\ttable.fields.delete(change.name)\n\t\t\ttable.fields.set(change.to.name, { ...change.to })\n\t\t}\n\t}\n\n\tasync applyRenameTable(change: RenameTableChange): Promise<void> {\n\t\tconst table = this.tables.get(change.from)\n\t\tif (table) {\n\t\t\tthis.tables.delete(change.from)\n\t\t\tthis.tables.set(change.to, table)\n\t\t}\n\t}\n\n\tasync applyRenameField(change: RenameFieldChange): Promise<void> {\n\t\tconst table = this.tables.get(change.table)\n\t\tif (table) {\n\t\t\tconst field = table.fields.get(change.from)\n\t\t\tif (field) {\n\t\t\t\ttable.fields.delete(change.from)\n\t\t\t\ttable.fields.set(change.to, { ...field, name: change.to })\n\t\t\t}\n\t\t}\n\t}\n\n\tasync applyAddIndex(change: AddIndexChange): Promise<void> {\n\t\tconst indexName = change.name ?? `${change.table}_${change.on.join('_')}_idx`\n\t\tthis.indexes.set(indexName, { table: change.table, on: change.on, unique: change.unique ?? false })\n\t}\n\n\tasync applyDropIndex(change: DropIndexChange): Promise<void> {\n\t\tthis.indexes.delete(change.name)\n\t}\n\n\tasync applyAddForeignKey(change: AddForeignKeyChange): Promise<void> {\n\t\tconst fkName = change.name ?? `${change.table}_${change.on}_fk`\n\t\tthis.foreignKeys.set(fkName, {\n\t\t\ttable: change.table,\n\t\t\ton: change.on,\n\t\t\treferences: { table: change.references.table, column: change.references.column },\n\t\t\tonDelete: change.onDelete as ForeignKeyAction | undefined,\n\t\t\tonUpdate: change.onUpdate as ForeignKeyAction | undefined,\n\t\t})\n\t}\n\n\tasync applyDropForeignKey(change: DropForeignKeyChange): Promise<void> {\n\t\tthis.foreignKeys.delete(change.name)\n\t}\n\n\tasync introspect(): Promise<DiscoveredSchema[]> {\n\t\tconst schemas: DiscoveredSchema[] = []\n\t\tfor (const [name, meta] of this.tables.entries()) {\n\t\t\tconst fields = [...meta.fields.values()].map((f) => ({\n\t\t\t\tname: f.name,\n\t\t\t\ttype: f.type as FieldTypeName,\n\t\t\t\tnullable: f.nullable ?? false,\n\t\t\t\t...(f.default !== undefined ? { default: f.default } : {}),\n\t\t\t\t...(f.unique ? { unique: true } : {}),\n\t\t\t}))\n\t\t\tconst indexes = [...this.indexes.entries()]\n\t\t\t\t.filter(([, idx]) => idx.table === name)\n\t\t\t\t.map(([idxName, idx]) => ({ name: idxName, on: idx.on, unique: idx.unique }))\n\t\t\tconst foreignKeys = [...this.foreignKeys.entries()]\n\t\t\t\t.filter(([, fk]) => fk.table === name)\n\t\t\t\t.map(([fkName, fk]) => ({\n\t\t\t\t\tname: fkName,\n\t\t\t\t\ton: fk.on,\n\t\t\t\t\treferences: { table: fk.references.table, column: fk.references.column },\n\t\t\t\t\t...(fk.onDelete ? { onDelete: fk.onDelete } : {}),\n\t\t\t\t\t...(fk.onUpdate ? { onUpdate: fk.onUpdate } : {}),\n\t\t\t\t}))\n\t\t\tschemas.push({\n\t\t\t\tname,\n\t\t\t\tpk: { name: meta.pk.name, type: meta.pk.type as FieldTypeName },\n\t\t\t\tfields,\n\t\t\t\tindexes,\n\t\t\t\tforeignKeys,\n\t\t\t})\n\t\t}\n\t\treturn schemas\n\t}\n\n\tasync acquireMigrationLock<T>(fn: () => Promise<T>): Promise<T> {\n\t\tlet release!: () => void\n\t\tconst next = new Promise<void>((r) => { release = r })\n\t\tconst prev = this.#migrationLock\n\t\tthis.#migrationLock = next\n\t\tawait prev\n\t\ttry {\n\t\t\treturn await fn()\n\t\t} finally {\n\t\t\trelease()\n\t\t}\n\t}\n\n\tasync session<T>(fn: () => Promise<T>): Promise<T> {\n\t\tif (sessionActiveStore.getStore()) return fn()\n\t\tconst snap = this.#snapshot()\n\t\ttry {\n\t\t\treturn await sessionActiveStore.run(true, fn)\n\t\t} catch (error) {\n\t\t\tthis.#restore(snap)\n\t\t\tthrow error\n\t\t}\n\t}\n}\n\nif (import.meta.vitest) {\n\tconst { describe, test, expect } = import.meta.vitest\n\tconst { FilterGroup } = await import('../../filter')\n\tconst { OrderBy } = await import('../../query-options')\n\tconst { Schema } = await import('../../schema')\n\tconst { IncOp, PatchOp, PullOp, PushOp } = await import('../../updates')\n\n\tconst { v } = await import('valleyed')\n\n\tdescribe('in-memory adapter', () => {\n\t\ttest('InMemoryAdapter.create({}) produces a working adapter', () => {\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\texpect(adapter).toBeInstanceOf(InMemoryAdapter)\n\t\t\texpect(adapter.schemaConfigPipe).toBeDefined()\n\t\t\texpect(adapter.supportedFieldTypes).toEqual(['string', 'number', 'boolean', 'null', 'object', 'array', 'date'])\n\t\t})\n\n\t\ttest('supports nested filters, ordering, select, offset and limit', async () => {\n\t\t\tconst schema = Schema.from('users')\n\t\t\t\t.pk('id', v.string(), () => 'u')\n\t\t\t\t.field('name', v.string())\n\t\t\t\t.field('age', v.number())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'users' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'u1', name: 'Alice', age: 30 },\n\t\t\t\t{ id: 'u2', name: 'Bob', age: 20 },\n\t\t\t\t{ id: 'u3', name: 'Carol', age: 40 },\n\t\t\t])\n\t\t\tconst builtGroup = FilterGroup.create().and([\n\t\t\t\t(q) => q.gt('age', 19),\n\t\t\t\t(q) => q.or([(g) => g.eq('name', 'Alice'), (g) => g.eq('name', 'Carol')]),\n\t\t\t])\n\t\t\tconst options = { orderBy: [new OrderBy('age', 'desc')], offset: 1, limit: 1, select: ['id', 'name'] }\n\t\t\tconst rows = await use.findMany(builtGroup, options)\n\t\t\texpect(rows).toEqual([{ id: 'u1', name: 'Alice' }])\n\t\t})\n\n\t\ttest('count returns the number of matching rows without query options', async () => {\n\t\t\tconst schema = Schema.from('count_users')\n\t\t\t\t.pk('id', v.string(), () => 'u')\n\t\t\t\t.field('name', v.string())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'count_users' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'u1', name: 'Alice' },\n\t\t\t\t{ id: 'u2', name: 'Bob' },\n\t\t\t\t{ id: 'u3', name: 'Alice' },\n\t\t\t])\n\n\t\t\tawait expect(use.count(FilterGroup.create().eq('name', 'Alice'))).resolves.toBe(2)\n\t\t})\n\n\t\ttest('iterateMany with batchSize matches findMany filtering ordering offset limit and selection', async () => {\n\t\t\tconst schema = Schema.from('iter_users')\n\t\t\t\t.pk('id', v.string(), () => 'u')\n\t\t\t\t.field('name', v.string())\n\t\t\t\t.field('age', v.number())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'iter_users' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'u1', name: 'Alice', age: 30 },\n\t\t\t\t{ id: 'u2', name: 'Bob', age: 20 },\n\t\t\t\t{ id: 'u3', name: 'Carol', age: 40 },\n\t\t\t\t{ id: 'u4', name: 'Dan', age: 50 },\n\t\t\t])\n\n\t\t\tconst filter = FilterGroup.create().gt('age', 19)\n\t\t\tconst options = {\n\t\t\t\torderBy: [new OrderBy('age', 'desc')],\n\t\t\t\toffset: 1,\n\t\t\t\tlimit: 2,\n\t\t\t\tselect: ['id', 'name'],\n\t\t\t}\n\t\t\tconst expected = await use.findMany(filter, options)\n\t\t\tconst rows: Record<string, unknown>[] = []\n\t\t\tfor await (const row of use.iterateMany(filter, { ...options, batchSize: 2 })) {\n\t\t\t\trows.push(row)\n\t\t\t}\n\n\t\t\texpect(rows).toEqual(expected)\n\t\t\texpect(rows).toEqual([\n\t\t\t\t{ id: 'u3', name: 'Carol' },\n\t\t\t\t{ id: 'u1', name: 'Alice' },\n\t\t\t])\n\t\t})\n\n\t\ttest('supports update operators and rollback on failed session', async () => {\n\t\t\tconst schema = Schema.from('docs')\n\t\t\t\t.pk('id', v.string(), () => 'd1')\n\t\t\t\t.field('count', v.number())\n\t\t\t\t.field('tags', v.array(v.string()))\n\t\t\t\t.field('meta', v.object({ a: v.number() }))\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'docs' })\n\t\t\tawait use.createOne({ id: 'd1', count: 1, tags: ['x'], meta: { a: 1 } })\n\n\t\t\tawait adapter.session(async () => {\n\t\t\t\tawait use.updateOne(FilterGroup.create().eq('id', 'd1'), {\n\t\t\t\t\tcount: new IncOp('count', 2),\n\t\t\t\t\ttags: new PushOp('tags', 'y'),\n\t\t\t\t\tmeta: new PatchOp('meta', { a: 9 }),\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tawait expect(\n\t\t\t\tadapter.session(async () => {\n\t\t\t\t\tawait use.updateOne(FilterGroup.create().eq('id', 'd1'), { tags: new PullOp('tags', 'x') })\n\t\t\t\t\tthrow new Error('boom')\n\t\t\t\t}),\n\t\t\t).rejects.toThrow('boom')\n\n\t\t\tconst row = await use.findOne(FilterGroup.create().eq('id', 'd1'))\n\t\t\texpect(row).toEqual({ id: 'd1', count: 3, tags: ['x', 'y'], meta: { a: 9 } })\n\t\t})\n\n\t\ttest('notIn filter excludes matching values', async () => {\n\t\t\tconst schema = Schema.from('users')\n\t\t\t\t.pk('id', v.string(), () => 'u')\n\t\t\t\t.field('name', v.string())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'users' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'u1', name: 'Alice' },\n\t\t\t\t{ id: 'u2', name: 'Bob' },\n\t\t\t\t{ id: 'u3', name: 'Carol' },\n\t\t\t])\n\t\t\tconst rows = await use.findMany(FilterGroup.create().notIn('name', ['Alice', 'Carol']))\n\t\t\texpect(rows).toHaveLength(1)\n\t\t\texpect(rows[0].name).toBe('Bob')\n\t\t})\n\n\t\ttest('exists / notExists filter ops work correctly', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => 'i')\n\t\t\t\t.field('val', v.optional(v.string()), { onCreate: () => undefined })\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'items' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'i1', val: 'present' },\n\t\t\t\t{ id: 'i2', val: null },\n\t\t\t\t{ id: 'i3', val: undefined },\n\t\t\t])\n\t\t\tconst existsRows = await use.findMany(FilterGroup.create().exists('val'))\n\t\t\texpect(existsRows).toHaveLength(1)\n\t\t\texpect(existsRows[0].id).toBe('i1')\n\n\t\t\tconst notExistsRows = await use.findMany(FilterGroup.create().notExists('val'))\n\t\t\texpect(notExistsRows).toHaveLength(2)\n\t\t})\n\n\t\ttest('findByPk returns seeded document and null for missing', async () => {\n\t\t\tconst schema = Schema.from('test')\n\t\t\t\t.pk('id', v.string(), () => 'gen')\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\n\t\t\tconst use = adapter.use(schema, { table: 'test' })\n\t\t\tawait use.createOne({ id: 'x' })\n\n\t\t\tconst found = await adapter.findByPk(schema, { table: 'test' }, 'x')\n\t\t\texpect(found).toEqual({ id: 'x' })\n\n\t\t\tconst missing = await adapter.findByPk(schema, { table: 'test' }, 'missing')\n\t\t\texpect(missing).toBeNull()\n\t\t})\n\n\t\ttest('auto-wired Instance hooks register correctly keyed by class', async () => {\n\t\t\tconst { Instance: Inst } = await import('../../../instance')\n\t\t\tconst onSpy = (await import('vitest')).vi.spyOn(Inst, 'on').mockImplementation(() => {})\n\n\t\t\tInMemoryAdapter.create({})\n\n\t\t\texpect(onSpy).not.toHaveBeenCalled()\n\n\t\t\tonSpy.mockRestore()\n\t\t})\n\n\t\ttest('declares aggregateOps with all six canonical ops', () => {\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\texpect(adapter.aggregateOps).toEqual(['count', 'countDistinct', 'sum', 'avg', 'min', 'max'])\n\t\t})\n\n\t\ttest('aggregate count returns correct total', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => `i-${Math.random().toString(36).slice(2, 8)}`)\n\t\t\t\t.field('category', v.string())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'items' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'i1', category: 'A' },\n\t\t\t\t{ id: 'i2', category: 'B' },\n\t\t\t\t{ id: 'i3', category: 'A' },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'items' }, {\n\t\t\t\taggregates: [{ fn: 'count', alias: 'total' }],\n\t\t\t\tgroupBy: [],\n\t\t\t})\n\t\t\texpect(result).toEqual([{ total: 3 }])\n\t\t})\n\n\t\ttest('aggregate count with where filter', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => `i-${Math.random().toString(36).slice(2, 8)}`)\n\t\t\t\t.field('category', v.string())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'items' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'i1', category: 'A' },\n\t\t\t\t{ id: 'i2', category: 'B' },\n\t\t\t\t{ id: 'i3', category: 'A' },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'items' }, {\n\t\t\t\taggregates: [{ fn: 'count', alias: 'total' }],\n\t\t\t\tgroupBy: [],\n\t\t\t\twhere: FilterGroup.create().eq('category', 'A'),\n\t\t\t})\n\t\t\texpect(result).toEqual([{ total: 2 }])\n\t\t})\n\n\t\ttest('aggregate count on empty store returns zero', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => 'x')\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'items' }, {\n\t\t\t\taggregates: [{ fn: 'count', alias: 'total' }],\n\t\t\t\tgroupBy: [],\n\t\t\t})\n\t\t\texpect(result).toEqual([{ total: 0 }])\n\t\t})\n\n\t\ttest('aggregate sum/avg/min/max compute correctly', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => 'x')\n\t\t\t\t.field('price', v.number())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'items' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'i1', price: 10 },\n\t\t\t\t{ id: 'i2', price: 20 },\n\t\t\t\t{ id: 'i3', price: 30 },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'items' }, {\n\t\t\t\taggregates: [\n\t\t\t\t\t{ fn: 'sum', field: 'price', alias: 'total' },\n\t\t\t\t\t{ fn: 'avg', field: 'price', alias: 'avg' },\n\t\t\t\t\t{ fn: 'min', field: 'price', alias: 'low' },\n\t\t\t\t\t{ fn: 'max', field: 'price', alias: 'high' },\n\t\t\t\t],\n\t\t\t\tgroupBy: [],\n\t\t\t})\n\t\t\texpect(result).toEqual([{ total: 60, avg: 20, low: 10, high: 30 }])\n\t\t})\n\n\t\ttest('aggregate countDistinct counts unique values', async () => {\n\t\t\tconst schema = Schema.from('items')\n\t\t\t\t.pk('id', v.string(), () => 'x')\n\t\t\t\t.field('category', v.string())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'items' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'i1', category: 'A' },\n\t\t\t\t{ id: 'i2', category: 'B' },\n\t\t\t\t{ id: 'i3', category: 'A' },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'items' }, {\n\t\t\t\taggregates: [{ fn: 'countDistinct', field: 'category', alias: 'unique' }],\n\t\t\t\tgroupBy: [],\n\t\t\t})\n\t\t\texpect(result).toEqual([{ unique: 2 }])\n\t\t})\n\n\t\ttest('aggregate groupBy produces per-group results', async () => {\n\t\t\tconst schema = Schema.from('orders')\n\t\t\t\t.pk('id', v.string(), () => 'x')\n\t\t\t\t.field('region', v.string())\n\t\t\t\t.field('amount', v.number())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'orders' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'o1', region: 'US', amount: 10 },\n\t\t\t\t{ id: 'o2', region: 'EU', amount: 20 },\n\t\t\t\t{ id: 'o3', region: 'US', amount: 30 },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'orders' }, {\n\t\t\t\taggregates: [\n\t\t\t\t\t{ fn: 'count', alias: 'cnt' },\n\t\t\t\t\t{ fn: 'sum', field: 'amount', alias: 'total' },\n\t\t\t\t],\n\t\t\t\tgroupBy: ['region'],\n\t\t\t})\n\t\t\texpect(result).toHaveLength(2)\n\t\t\tconst us = result.find((r) => r.region === 'US')\n\t\t\tconst eu = result.find((r) => r.region === 'EU')\n\t\t\texpect(us).toEqual({ region: 'US', cnt: 2, total: 40 })\n\t\t\texpect(eu).toEqual({ region: 'EU', cnt: 1, total: 20 })\n\t\t})\n\n\t\ttest('aggregate having filters post-aggregation', async () => {\n\t\t\tconst schema = Schema.from('orders')\n\t\t\t\t.pk('id', v.string(), () => 'x')\n\t\t\t\t.field('region', v.string())\n\t\t\t\t.field('amount', v.number())\n\t\t\t\t.build()\n\t\t\tconst adapter = InMemoryAdapter.create({})\n\t\t\tconst use = adapter.use(schema, { table: 'orders' })\n\t\t\tawait use.createMany([\n\t\t\t\t{ id: 'o1', region: 'US', amount: 10 },\n\t\t\t\t{ id: 'o2', region: 'EU', amount: 20 },\n\t\t\t\t{ id: 'o3', region: 'US', amount: 30 },\n\t\t\t])\n\t\t\tconst result = await adapter.aggregate(schema, { table: 'orders' }, {\n\t\t\t\taggregates: [{ fn: 'sum', field: 'amount', alias: 'total' }],\n\t\t\t\tgroupBy: ['region'],\n\t\t\t\thaving: FilterGroup.create().gt('total', 25),\n\t\t\t})\n\t\t\texpect(result).toHaveLength(1)\n\t\t\texpect(result[0]).toEqual({ region: 'US', total: 40 })\n\t\t})\n\t})\n}\n"],"mappings":"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","names":["AsyncLocalStorage","v","differ","inMemoryConnectionPipe","v","clone","value","replaceMap","target","source","k","val","isPlainObject","containsSubset","needle","item","existing","differ","compareValues","b","sa","sb","resolveConfigName","_","config","evaluateFilter","doc","filter","fieldValue","evaluateChild","child","Filter","FilterGroup","c","matchesFilter","group","clause","applyOptions","rows","options","results","a","ord","cmp","fields","row","out","key","applyUpdateOp","current","IncOp","base","MulOp","MinOp","MaxOp","UnsetOp","PushOp","arr","PullOp","entry","PatchOp","applyUpdateData","data","updated","applyOps","ops","op","SetOp","sessionActiveStore","AsyncLocalStorage","InMemoryAdapter","configurable","OrmAdapter","#migrationLock","#getStore","name","#resolveStore","schema","#snapshot","stores","store","storeCopy","id","migrations","indexes","tables","meta","foreignKeys","#restore","snap","pk","d","pkStr","batchSize","start","ids","next","create","result","spec","where","groups","f","groupRows","field","agg","vals","r","acc","sum","minVal","maxVal","having","m","appliedAt","change","table","indexName","fkName","schemas","idx","idxName","fk","fn","release","prev","error"]}
@@ -0,0 +1,2 @@
1
+ var t=(a=>(a.CronJob="CronJob",a.RepeatableJob="RepeatableJob",a.DelayedJob="DelayedJob",a))(t||{}),o=class{#e=[];#a={};get callbacks(){return this.#a}set callbacks(e){this.#a=e}get crons(){return this.#e}set crons(e){this.#e=e}};export{t as a,o as b};
2
+ //# sourceMappingURL=chunk-BJNIUCPT.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/jobs/adapters/base.ts"],"sourcesContent":["import type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\n\nexport enum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\nexport type Cron = CronTypes[keyof CronTypes]\nexport type DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\nexport type RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\nexport type DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\nexport type CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\nexport type RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\nexport type JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport abstract class Job {\n\t#crons: { name: Cron; cron: string }[] = []\n\t#callbacks: JobCallbacks = {}\n\n\tabstract addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string>\n\tabstract addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string>\n\tabstract removeDelayed(jobId: string): Promise<void>\n\tabstract retryAllFailedJobs(): Promise<void>\n\n\tget callbacks() {\n\t\treturn this.#callbacks\n\t}\n\tset callbacks(newCallbacks: JobCallbacks) {\n\t\tthis.#callbacks = newCallbacks\n\t}\n\tget crons() {\n\t\treturn this.#crons\n\t}\n\tset crons(newCrons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = newCrons\n\t}\n}\n"],"mappings":"AAEO,IAAKA,OACXA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAChBA,EAAA,WAAa,aAHFA,OAAA,IAcUC,EAAf,KAAmB,CACzBC,GAAyC,CAAC,EAC1CC,GAA2B,CAAC,EAO5B,IAAI,WAAY,CACf,OAAO,KAAKA,EACb,CACA,IAAI,UAAUC,EAA4B,CACzC,KAAKD,GAAaC,CACnB,CACA,IAAI,OAAQ,CACX,OAAO,KAAKF,EACb,CACA,IAAI,MAAMG,EAA0C,CACnD,KAAKH,GAASG,CACf,CACD","names":["JobNames","Job","#crons","#callbacks","newCallbacks","newCrons"]}
@@ -0,0 +1,29 @@
1
+ // src/jobs/adapters/base.ts
2
+ var JobNames = /* @__PURE__ */ ((JobNames2) => {
3
+ JobNames2["CronJob"] = "CronJob";
4
+ JobNames2["RepeatableJob"] = "RepeatableJob";
5
+ JobNames2["DelayedJob"] = "DelayedJob";
6
+ return JobNames2;
7
+ })(JobNames || {});
8
+ var Job = class {
9
+ #crons = [];
10
+ #callbacks = {};
11
+ get callbacks() {
12
+ return this.#callbacks;
13
+ }
14
+ set callbacks(newCallbacks) {
15
+ this.#callbacks = newCallbacks;
16
+ }
17
+ get crons() {
18
+ return this.#crons;
19
+ }
20
+ set crons(newCrons) {
21
+ this.#crons = newCrons;
22
+ }
23
+ };
24
+
25
+ export {
26
+ JobNames,
27
+ Job
28
+ };
29
+ //# sourceMappingURL=chunk-DKPZJIIR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/jobs/adapters/base.ts"],"sourcesContent":["import type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\n\nexport enum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\nexport type Cron = CronTypes[keyof CronTypes]\nexport type DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\nexport type RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\nexport type DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\nexport type CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\nexport type RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\nexport type JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport abstract class Job {\n\t#crons: { name: Cron; cron: string }[] = []\n\t#callbacks: JobCallbacks = {}\n\n\tabstract addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string>\n\tabstract addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string>\n\tabstract removeDelayed(jobId: string): Promise<void>\n\tabstract retryAllFailedJobs(): Promise<void>\n\n\tget callbacks() {\n\t\treturn this.#callbacks\n\t}\n\tset callbacks(newCallbacks: JobCallbacks) {\n\t\tthis.#callbacks = newCallbacks\n\t}\n\tget crons() {\n\t\treturn this.#crons\n\t}\n\tset crons(newCrons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = newCrons\n\t}\n}\n"],"mappings":";AAEO,IAAK,WAAL,kBAAKA,cAAL;AACN,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,mBAAgB;AAChB,EAAAA,UAAA,gBAAa;AAHF,SAAAA;AAAA,GAAA;AAcL,IAAe,MAAf,MAAmB;AAAA,EACzB,SAAyC,CAAC;AAAA,EAC1C,aAA2B,CAAC;AAAA,EAO5B,IAAI,YAAY;AACf,WAAO,KAAK;AAAA,EACb;AAAA,EACA,IAAI,UAAU,cAA4B;AACzC,SAAK,aAAa;AAAA,EACnB;AAAA,EACA,IAAI,QAAQ;AACX,WAAO,KAAK;AAAA,EACb;AAAA,EACA,IAAI,MAAM,UAA0C;AACnD,SAAK,SAAS;AAAA,EACf;AACD;","names":["JobNames"]}
@@ -0,0 +1,2 @@
1
+ var t=class{};export{t as a};
2
+ //# sourceMappingURL=chunk-DSUJ5FUL.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/events/adapters/base.ts"],"sourcesContent":["import type { Events } from '../../types'\n\nexport type StreamOptions = { skipScope?: boolean; fanout: boolean }\n\nexport type Stream<EventData> = {\n\tpublish: (data: EventData) => Promise<boolean>\n\tsubscribe: (onMessage: (data: EventData) => Promise<void>) => void\n}\n\nexport abstract class EventBus {\n\tabstract stream<Event extends Events[keyof Events]>(topic: Event['topic'], options?: Partial<StreamOptions>): Stream<Event['data']>\n}\n"],"mappings":"AASO,IAAeA,EAAf,KAAwB,CAE/B","names":["EventBus"]}
@@ -0,0 +1,32 @@
1
+ import{a as te}from "./chunk-DSUJ5FUL.min.mjs";import{a as M}from "./chunk-AQY7QVYI.min.mjs";export*from"valleyed";var Pe={};M(Pe,{incomingFile:()=>rt,incomingFiles:()=>nt,requestLocalStorage:()=>K,responseLocalStorage:()=>W,withRequest:()=>at,withResponse:()=>it});import{AsyncLocalStorage as Te}from"async_hooks";import{PipeError as ot,v as E}from"valleyed";import I from"pino";import{ulid as st}from"ulid";import{v as Ce}from"valleyed";var h=class extends Error{constructor(t,o,n){super(t,{cause:n});this.message=t;this.context=o;this.cause=n}};var x=class extends h{constructor(t,o,n){super(t,{serializedErrors:o},n);this.message=t;this.serializedErrors=o}};import"http";import"@fastify/cors";import"cors";import{Server as ze}from"socket.io";import _e from"supertest";import{PipeError as Qe,v as i}from"valleyed";import{convert as j}from"@openapi-contrib/json-schema-to-openapi-schema";import{capitalize as Ee}from"valleyed";import{v as Ae}from"valleyed";var C={head:"head",get:"get",post:"post",put:"put",patch:"patch",delete:"delete",options:"options"},m={Ok:200,Found:302,BadRequest:400,NotAuthenticated:401,NotAuthorized:403,NotFound:404,ValidationError:422,TooManyRequests:429,TokenExpired:461};function Q(s,e){return{cb:s,onSetup:e}}var se=(...s)=>Q(...s),lt=(...s)=>Q(...s),ft=(...s)=>Q(...s);function Se(...s){let e={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:""};function t(o,n){return o?n?typeof o=="number"||typeof o=="string"||typeof o=="function"?n:Ae.merge(o,n):o:n}return Object.fromEntries(Object.keys(e).map(o=>[o,s.map(n=>n[o]).reduce(t,null)]))}var oe=(s,e)=>e.map(t=>({...s,...t,path:`${s.path}/${t.path}`,groups:[...s.groups??[],...t.groups??[]],middlewares:[...s.middlewares??[],...t.middlewares??[]],responseMiddlewares:[...s.responseMiddlewares??[],...t.responseMiddlewares??[]],schema:Se(s.schema??{},t.schema??{}),security:[...s.security??[],...t.security??[]]})),N=class{#e={path:""};#t=[];#o=[];constructor(e={path:""}){this.#e=e}#s(e){return(t,o={})=>n=>{let r=oe(this.#e,[{...o,path:t,method:e,handler:n}])[0];return this.#t.push(r),r}}head=this.#s(C.head);get=this.#s(C.get);post=this.#s(C.post);put=this.#s(C.put);patch=this.#s(C.patch);delete=this.#s(C.delete);options=this.#s(C.options);nest(...e){e.forEach(t=>this.#o.push(t))}get routes(){return[...this.#t].concat(this.#o.flatMap(e=>oe(this.#e,e.routes)))}};var re=s=>{let e=H.get(),{app:t}=e.settings,o={openapi:"3.0.0",info:{title:`${t.name} ${e.id}`,version:s.openapi.docsVersion??""},servers:s.openapi.docsBaseUrl?.map(a=>({url:a})),paths:{},components:{schemas:{},securitySchemes:{Authorization:{type:"apiKey",name:"authorization",in:"header"},RefreshToken:{type:"apiKey",name:"x-refresh-token",in:"header"},ApiKey:{type:"apiKey",name:"x-api-key",in:"header"}}},tags:[],"x-tagGroups":[]},n={},r={},c=a=>{let{allOf:p,oneOf:l,anyOf:f,...D}=a;return p?p.flatMap(k=>c(k)):[D]},u=a=>{if(!a||typeof a!="object")return a;if(typeof a.$refId=="string"){let{$refId:p,...l}=a,f=u(l);return o.components?.schemas?(o.components.schemas[p]=f,{$ref:`#/components/schemas/${p}`}):f}return Array.isArray(a)?a.map(p=>u(p)):Object.fromEntries(Object.entries(a).map(([p,l])=>[p,u(l)]))},y=a=>{if(!a.length)return;let p=a.map(k=>typeof k=="string"?{name:k}:k),l=p.map(k=>k.name).join(" > "),f=p.at(-1)?.name??"",D=p.map(k=>k.description?.trim()??"").filter(Boolean).join(`
2
+
3
+
4
+
5
+ `);if(!n[l]){n[l]=!0,o.tags.push({name:l,"x-displayName":f,description:D});let w=p.slice(0,-1).map(A=>A.name).join(" > ")||"default";if(!r[w]){let A={name:w,tags:[]};o["x-tagGroups"].push(A),r[w]=A}r[w].tags=[...new Set([...r[w].tags,l])]}return l},d=async(a,p,l,f)=>{if(l.response.response?.length){f.responses??={};for(let w of l.response.response){f.responses[w.status]??={description:"",content:{}};let A=f.responses[w.status];A.content[w.contentType]={schema:await j(u(w.schema))}}}if(l.response.responseHeaders?.length){f.responses??={};for(let w of l.response.responseHeaders){f.responses[w.status]??={description:"",content:{}},f.responses[w.status];let A=f.responses[w.status];A.headers={schema:await j(u(w.schema))}}}l.request.body&&(f.requestBody={required:!0,content:{"application/json":{schema:await j(u(l.request.body))}}});let D=[],k=async(w,A)=>{if(!A)return;let De=c(A);for(let _ of De)if(_.properties)for(let[ee,qe]of Object.entries(_.properties))D.push({name:ee,in:w,schema:await j(u(qe)),required:(_.required||[]).includes(ee)})};await Promise.all([k("query",l.request.query),k("path",l.request.params),k("header",l.request.headers)]),D.length&&(f.parameters=D),o.paths||(o.paths={}),o.paths[a]||(o.paths[a]={}),o.paths[a][p]=f},R=a=>`
6
+ <!doctype html>
7
+ <html>
8
+ <head>
9
+ <title>${Ee(`${t.name} ${e.id}`)}</title>
10
+ <meta charset="utf-8" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style>
13
+ .darklight-reference {
14
+ display: none;
15
+ }
16
+ </style>
17
+ </head>
18
+ <body>
19
+ <script id="api-reference" data-url="${a}"></script>
20
+ <script>
21
+ const configuration = { theme: 'purple' };
22
+ document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);
23
+ </script>
24
+ <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0"></script>
25
+ </body>
26
+ </html>
27
+ `,g=a=>{let p=a.replace(/(\/\s*)+/g,"/");return p.startsWith("/")||(p=`/${p}`),p!=="/"&&p.endsWith("/")&&(p=p.slice(0,-1)),p},b=async(a,p)=>{if(a.hide)return;let l=y(a.groups??[]),f=g(a.path),D=`(${a.method.toUpperCase()}) ${f}`;await d(f,a.method.toLowerCase(),p,{operationId:D,summary:a.title??f,description:a.descriptions?.join(`
28
+
29
+ `),tags:l?[l]:void 0,security:a.security})},v="/openapi.json",B=new N({path:s.openapi.docsPath??"/",hide:!0});return B.get("/index.html")(a=>a.res({body:R(`.${v}`),contentType:"text/html"})),B.get(v)(a=>a.res({body:o})),{router:B,register:b,cleanPath:g}};var ie={};M(ie,{signinWithApple:()=>Ie,signinWithFacebook:()=>Me,signinWithGoogle:()=>Oe});import ae from"axios";import ne from"jsonwebtoken";import Be from"jwks-rsa";var Oe=async s=>{let e=`https://oauth2.googleapis.com/tokeninfo?id_token=${s}`,{data:t}=await ae.get(e).catch(o=>{throw new h("Failed to sign in with google",{idToken:s},o)});return t.first_name=t.given_name,t.last_name=t.family_name,t},Ie=async s=>{try{let e="https://appleid.apple.com",t=ne.decode(s,{complete:!0});if(!t?.header)throw new h("Missing JWT header",{idToken:s,json:t});let{kid:o,alg:n}=t.header,r=await Be({jwksUri:`${e}/auth/keys`,cache:!0}).getSigningKey(o).then(u=>u.getPublicKey()).catch(()=>null);if(!r)throw new h("no publicKey",{idToken:s,publicKey:r,json:t});let c=ne.verify(s,r,{algorithms:[n]});if(!c)throw new h("no data",{idToken:s,data:c});if(c.iss!==e)throw new h("iss doesnt match",{idToken:s,data:c});if(c.exp*1e3<Date.now())throw new h("expired idToken",{idToken:s,data:c});return c}catch(e){throw new h("Failed to sign in with apple",{idToken:s},e)}},Me=async(s,e=[])=>{e=[...new Set([...e,"name","picture","email"])];let{data:t}=await ae.request({method:"get",url:"https://graph.facebook.com/v15.0/me",params:{fields:e.join(","),access_token:s}}).catch(n=>{throw new h("Failed to sign in with facebook",{accessToken:s,fields:e},n)});if(!e.every(n=>n in t))throw new h("Incomplete scope for access token",{accessToken:s,fields:e,data:t});return t.email_verified="true",t};import{v as pe}from"valleyed";function Dt(s,e){let t=s();pe.compile(t);class o extends e{constructor(c,...u){super(...u);this.config=c}static create(c,...u){let y=pe.validate(t,c);if(!y.valid)throw y.error;return new this(y.value,...u)}}return o}var ce={};M(ce,{compare:()=>je,hash:()=>Ne});import*as F from"bcryptjs";var Ne=async s=>(s=s.trim(),s?await F.hash(s,H.get().settings.utils.hashSaltRounds):""),je=async(s,e)=>(s=s.trim(),!s&&s===e?!0:await F.compare(s,e));var Fe=s=>{try{return s?.constructor?.name!=="String"?s:JSON.parse(s)}catch{return s}};function X(s){return Object.fromEntries(Object.entries(s).map(([e,t])=>[e,Fe(t)]))}import{parseBuffer as Le}from"music-metadata";var Bt=async s=>{try{return(await Le(s)).format.duration??0}catch{return 0}};var de={};M(de,{number:()=>Ve,string:()=>$e});import ue from"crypto";function $e(s=20){return ue.randomBytes(s).toString("hex").slice(0,s)}function Ve(s=0,e=2**48-1){return ue.randomInt(s,e)}var Ge=s=>new Promise(e=>setTimeout(e,s)),Ke=async(s,e,t)=>{if(e<=0)throw new h("out of tries",{tries:e,waitTimeInMs:t});let o=await s();return o.done===!0?o.value:(await Ge(t),await Ke(s,e-1,t))};var le=class{ip;method;path;body;params;query;headers;cookies;authUser=null;constructor({ip:e,body:t,cookies:o,params:n,query:r,method:c,path:u,headers:y,files:d}){this.ip=e,this.method=c,this.path=u,this.params=n,this.cookies=o,this.headers=y,this.query=X(r),this.body=Object.assign(X(t),d)}pipe(e,t={}){return new P({...t,piped:!0,body:e})}res(e){return new P({...e,piped:!1})}error(e){return new P({...e,piped:!1})}},P=class{body;headers;cookies;status;contentType;piped;constructor({body:e,status:t=200,headers:o={},cookies:n={},piped:r=!1,contentType:c="application/json"}){this.body=e,this.status=t,this.contentType=c,this.headers=o,this.cookies=n,this.piped=r,this.piped||(this.headers["Content-Type"]=c)}get cookieValues(){return Object.fromEntries(Object.entries(this.cookies).map(([e,t])=>[e,t]))}set cookieValues(e){Object.entries(e).forEach(([t,o])=>{this.cookies[t]&&(this.cookies[t].value=o)})}};import"http2";var q=class{static async process(e,t){if(e.length===0)return null;let o;for(let n of e)try{return await n.parse(t)}catch(r){o=r}throw o instanceof x?o:new L("failed to parse auth user",o)}};var fe=class extends q{headerName;constructor(e){super(),this.headerName=e}async parse(e){let t=e[this.headerName];if(!t||typeof t!="string")throw new S;return this.verify(t)}routeSecuritySchemeName(){return this.headerName}};import We from"@fastify/cookie";import Y from"jsonwebtoken";var $=class extends q{options;constructor(e){super(),this.options=e}#e(e){return`${this.options.storagePrefix??""}${e}`}async createToken(e){let t=Y.sign(e,this.options.signingKey,{expiresIn:this.options.storageTTL});return await this.store(this.#e(e.id),t,this.options.storageTTL),t}async parse(e){try{let t=await this.parseHeader(e),o=Y.verify(t,this.options.signingKey);if(!o)throw new S;if(this.options.enforceSingleSession){let n=await this.retrieve(this.#e(o.id));if(t&&t!==n)throw new O}return o}catch(t){throw t instanceof O?t:t instanceof Y.TokenExpiredError?new O(void 0,t):new S(void 0,t)}}async retrieveFor(e){return this.retrieve(this.#e(e))}async deleteFor(e){await this.delete(this.#e(e))}},he=class extends ${options;constructor(e){super(e),this.options=e}async parseHeader(e){let t=e[this.options.headerName];if(!t||typeof t!="string")throw new S;return t.startsWith("Bearer ")?t.slice(7):t}routeSecuritySchemeName(){return this.options.headerName}},ye=class extends ${options;constructor(e){super(e),this.options=e}async parseHeader(e){let o=(We.parse(e.cookie||"")??{})[this.options.cookieName];if(!o||typeof o!="string")throw new S;return o}routeSecuritySchemeName(){return`cookie:${this.options.cookieName}`}};import{match as Je}from"path-to-regexp";var Ue="__listener_emitter",me="*",V=class{constructor(e,t){this.config=t;this.socketInstance=e,this.#r(),H.on("setup",()=>{let o=t.eventBus?.stream(Ue,{fanout:!0});this.#o=o?o.publish:async n=>{e.to(n.channel).emit(n.channel,n)},o?.subscribe(async n=>{e.to(n.channel).emit(n.channel,n)})})}socketInstance;#e={onConnect:async()=>{},onDisconnect:async()=>{}};#t={};#o=async()=>{};async created(e,t,o){await this.#s(e,"created",{after:t.toJSON(),before:null},o)}async updated(e,{after:t,before:o},n){await this.#s(e,"updated",{after:t.toJSON(),before:o.toJSON()},n)}async deleted(e,t,o){await this.#s(e,"deleted",{before:t.toJSON(),after:null},o)}async#s(e,t,{before:o,after:n},r){let c=Array.isArray(r)?r:[r??me],u=e.flatMap(y=>c.map(d=>`${d}:${y}`));await Promise.all(u.map(async y=>this.#o({channel:y,type:t,before:o,after:n})))}set connectionCallbacks(e){this.#e=e,this.#r()}register(e,t){return this.#t[e]=t,this.#t[e+"/:id"]=t,this}#n(e){let t=r=>Je(r)(e),o=Object.keys(this.#t).find(t)??null;if(!o)return null;let n=t(o);return n?{config:this.#t[o],params:n.params}:null}#r=()=>{this.socketInstance.removeAllListeners("connection"),this.socketInstance.on("connection",async e=>{let t=e.id,o=await q.process(this.config.socketsAuthMethods,e.handshake.headers).catch(()=>null);e.on("leave",async(n,r)=>n.channel?(e.leave(n.channel),typeof r=="function"&&r({code:m.Ok,message:"",channel:n.channel})):typeof r=="function"&&r({code:m.ValidationError,message:"channel is required",channel:""})),e.on("join",async(n,r)=>{if(!n.channel)return typeof r=="function"&&r({code:m.ValidationError,message:"channel is required",channel:""});let c=n.channel,u=this.#n(c)??null;if(!u)return typeof r=="function"&&r({code:m.BadRequest,message:"unknown channel",channel:c});let d=`${await u.config({channel:c,user:o},u.params,n.query??{})??me}:${c}`;return e.join(d),typeof r=="function"&&r({code:m.Ok,message:"",channel:d})}),o&&await this.#e.onConnect(o.id,t),e.on("disconnect",async()=>{o&&await this.#e.onDisconnect(o.id,t)})})}};var Ts=()=>i.object({port:i.number(),cors:i.optional(i.object({origin:i.optional(i.or([i.array(i.string()),i.is(!0)])),methods:i.optional(i.array(i.in(Object.values(C)))),credentials:i.optional(i.boolean())})),eventBus:i.optional(i.instanceOf(te)),publicPath:i.optional(i.string()),healthPath:i.optional(i.string()),openapi:i.defaults(i.object({docsVersion:i.defaults(i.string(),"1.0.0"),docsBaseUrl:i.defaults(i.array(i.string()),["/"]),docsPath:i.defaults(i.string(),"/__docs")}),{}),requests:i.defaults(i.object({log:i.defaults(i.boolean(),!0),rateLimit:i.defaults(i.object({enabled:i.defaults(i.boolean(),!1),periodInMs:i.defaults(i.number(),3600*1e3),limit:i.defaults(i.number(),5e3)}),{}),slowdown:i.defaults(i.object({enabled:i.defaults(i.boolean(),!1),periodInMs:i.defaults(i.number(),600*1e3),delayAfter:i.defaults(i.number(),2e3),delayInMs:i.defaults(i.number(),500)}),{})}),{}),socketsAuthMethods:i.defaults(i.array(i.instanceOf(q)),[])}),be=Symbol("rawResponseHandled"),ge=Object.freeze({[be]:!0}),Xe="Raw not-found handler did not start or complete a response";function Ye(s){return!!(s&&typeof s=="object"&&be in s)}function Z(s){return s.headersSent||s.writableEnded}function Re(s,e){if(Z(s))return;s.statusCode=m.BadRequest,s.setHeader("Content-Type","application/json");let t=e instanceof Error?e.message:`${e}`;s.end(JSON.stringify([{message:t}]))}var Ze=Object.entries(m).filter(([,s])=>s>399).map(([s,e])=>({status:e,contentType:"application/json",pipe:i.meta(i.array(i.object({message:i.string(),field:i.optional(i.string())})),{$refId:`Errors.${s}Response`,description:`${s} Response`})})),we=class{socket;cors;#e;#t;#o;#s=[];#n=new Set;#r=!1;#a=null;setup(e,t){this.#e=e,this.#o=t,this.cors={origin:t.cors?.origin?(n,r)=>r(null,!0):t.cors?.origin,methods:(t.cors?.methods??Object.values(C)).filter(n=>n!==C.options).map(n=>n.toUpperCase()),credentials:t.cors?.credentials},this.#t=re(t);let o=new ze(e,{cors:this.cors});this.socket=new V(o,t),this.addRouter(this.#t.router)}addRouter(...e){e.map(t=>t.routes).forEach(t=>this.addRoute(...t))}addRoute(...e){e.forEach(t=>{this.#s.push(async()=>{let{method:o,path:n,schema:r={},onError:c,middlewares:u=[],responseMiddlewares:y=[]}=t,d=`(${o.toUpperCase()}) ${this.#t.cleanPath(n)}`;if(this.#n.has(d))throw new h(`Route key ${d} already registered. All route keys must be unique`,{route:t,key:d});u.forEach(v=>v.onSetup?.(t)),c?.onSetup?.(t),y.forEach(v=>v.onSetup?.(t));let{validateRequest:R,validateResponse:g,jsonSchema:b}=this.#p(o,r);this.#n.add(d),await this.#t.register(t,b),this.registerRoute(o,this.#t.cleanPath(n),async(v,B)=>{let a=await R(await this.parseRequest(v));try{for(let f of u)await f.cb(a);let p=await t.handler(a),l=p instanceof P?p:new P({body:p,status:m.Ok,headers:{},piped:!1});for(let f of y)await f.cb(a,l);return await this.handleResponse(B,await g(l))}catch(p){if(c?.cb){let l=await c.cb(a,p),f=l instanceof P?l:new P({body:l,status:m.BadRequest,headers:{}});return await this.handleResponse(B,await g(f))}throw p}})})})}setNotFoundHandler(e){if(this.#r)throw new h("Cannot set not-found handler after server has started",{});return this.#a=e,this}test(){return _e(this.#e)}async start(){this.#r=!0;let e=this.#o,t=H.get(),{app:o}=t.settings;e.healthPath&&this.addRoute({method:C.get,path:e.healthPath,handler:async r=>r.res({body:`${t.id}(${o.name}) service running`,contentType:"text/plain"})}),await Promise.all(this.#s.map(r=>r())),this.registerNotFoundHandler(async(r,c)=>await this.#i(r,c)),this.registerErrorHandler(async(r,c,u)=>{r instanceof h||H.get().log.error({error:r},"Uncaught error in route handler");let y=r instanceof x?new P({body:r.serializedErrors,status:r.statusCode}):r instanceof h?new P({body:[{message:r.message}],status:m.BadRequest}):new P({body:[{message:"Something went wrong",data:r.message}],status:m.BadRequest});return await this.handleResponse(u,y)});let n=await this.startServer(e.port);return n&&H.get().log.info(`${t.id}(${o.name}) service listening on port ${e.port}`),n}createNodeRawResponder(e){return async t=>{e.beforeHandle?.();try{await t(e.request,e.response)}catch(o){if(!Z(e.response))return Re(e.response,o),ge;throw o}return Z(e.response)||Re(e.response,new h(Xe,{})),ge}}async#i(e,t){let o=await this.parseRequest(e);if(!this.#a)throw new J(`Route ${o.path} not found`);let n=await this.#a({request:o,respondWithRaw:this.createRawResponder(e,t)});if(!Ye(n)){if(n instanceof P)return await this.handleResponse(t,n);throw new h("Not-found handler must return a Response or respondWithRaw(...)",{})}}#p(e,t){let o=t?.defaultStatusCode??m.Ok,n=t?.defaultContentType??"application/json",r=o,c=n,u={response:{},request:{}},y={},d={};[{key:"params",type:"request"},{key:"headers",type:"request"},{key:"cookies",type:"request"},{key:"query",type:"request"},{key:"body",type:"request",skip:![C.post,C.put,C.patch].includes(e)},{key:"response",type:"response"},{key:"responseHeaders",type:"response"},{key:"responseCookies",type:"response"}].forEach(a=>{let p=t[a.key]??i.any();if(!a.skip&&(a.type==="request"&&(y[a.key]=p,u.request[a.key]=i.schema(p)),a.type==="response")){let l=Ze.concat({status:o,contentType:c,pipe:p});d[a.key]=i.any().pipe(f=>{let D=l.find(w=>w.status===r)?.pipe;if(!D)throw Qe.root(`schema not defined for status code: ${r}`,f);let k=i.validate(D,f);if(!k.valid)throw k.error;return k.value}),u.response[a.key]=l.map(f=>({status:f.status,contentType:f.contentType,schema:i.schema(f.pipe)}))}});let g=i.object(y);i.compile(g,{allErrors:!0});let b=i.object(d);return i.compile(b,{allErrors:!0}),{jsonSchema:u,validateRequest:async a=>{if(!Object.keys(y))return a;let p=K.run(a,()=>i.validate(g,{params:a.params,headers:a.headers,query:a.query,body:a.body,cookies:a.cookies}));if(!p.valid)throw G(p.error);return a.params=p.value.params,a.headers=p.value.headers,a.query=p.value.query,a.body=p.value.body,a.cookies=p.value.cookies,a},validateResponse:async a=>{if(!Object.keys(d))return a;r=a.status,c=a.contentType;let p=W.run(a,()=>i.validate(b,{responseHeaders:a.headers,responseCookies:Object.fromEntries(Object.entries(a.cookies).map(([l,f])=>[l,f.value])),response:a.body}));if(!p.valid)throw G(p.error);return a.body=p.value.response,a.headers=p.value.responseHeaders,a.cookieValues=p.value.responseCookies,a}}}};var As=s=>se(async e=>{if(e.authUser=await q.process(s,e.headers),!e.authUser)throw new S},e=>{e.security??=[];for(let t of s){let o=t.routeSecuritySchemeName();o&&e.security.push({[o]:[]})}e.descriptions??=[],e.descriptions.push("Requires a valid means of authentication.")});var L=class extends x{statusCode=m.BadRequest;constructor(e,t){super(e,[{message:e}],t)}};var S=class extends x{statusCode=m.NotAuthenticated;constructor(e="Not authenticated",t){super(e,[{message:e}],t)}};var ke=class extends x{statusCode=m.NotAuthorized;constructor(e="Not authorized",t){super(e,[{message:e}],t)}};var J=class extends x{statusCode=m.NotFound;constructor(e="Not found",t){super(e,[{message:e}],t)}};var O=class extends x{statusCode=m.TokenExpired;constructor(e="Token expired",t){super(e,[{message:e}],t)}};var U=class extends x{statusCode=m.ValidationError;constructor(e,t){super("Unprocessable Entity",e.flatMap(({field:o,messages:n})=>n.map(r=>({message:r,field:o}))),t)}};function xe(s,e){for(let t of e.after)if(!s.some(o=>o.class===t)){let o=t.name||"unknown",n=e.class?.name||"anonymous";throw new Error(`Missing dependency: ${n} declares after: [${o}], but ${o} is not registered`)}if(e.class){let t=[...s,e];et(t)}s.push(e)}function et(s){let e=new Map;for(let r of s){if(!r.class)continue;let c=e.get(r.class);if(c)for(let u of r.after)c.includes(u)||c.push(u);else e.set(r.class,[...r.after])}let t=new Set,o=new Set;function n(r,c){if(o.has(r)){let u=c.indexOf(r),d=[...c.slice(u),r].map(R=>R.name||"unknown");throw new Error(`Cycle detected: ${d.join(" \u2192 ")}`)}if(!t.has(r)){o.add(r),c.push(r);for(let u of e.get(r)??[])n(u,c);c.pop(),o.delete(r),t.add(r)}}for(let r of e.keys())n(r,[])}function tt(s,e=!1){if(s.length===0)return[];let t=new Map,o=[];for(let d of s)if(d.class){let R=t.get(d.class);R?R.push(d):t.set(d.class,[d])}else o.push(d);let n=[...t.keys()],r=new Map,c=new Map;for(let d of n)r.set(d,0),c.set(d,[]);for(let d of s)if(d.class)for(let R of d.after){let[g,b]=e?[d.class,R]:[R,d.class],v=c.get(g);v.includes(b)||(v.push(b),r.set(b,r.get(b)+1))}let u=[],y=n.filter(d=>r.get(d)===0);for(;y.length>0;){let d=[],R=[];for(let g of y)d.push(...t.get(g)??[]);u.push(d);for(let g of y)for(let b of c.get(g)??[]){let v=r.get(b)-1;r.set(b,v),v===0&&R.push(b)}y=R}if(o.length>0){let d=o.filter(g=>g.after.length>0),R=o.filter(g=>g.after.length===0);if(d.length>0){let g=-1;for(let v of d)for(let B of v.after){let a=u.findIndex(p=>p.some(l=>l.class===B));a>g&&(g=a)}let b=g+1;b<u.length?u[b].push(...d):u.push(d)}R.length>0&&(u.length>0?u[u.length-1].push(...R):u.push(R))}return u}async function z(s,e=o=>{throw o},t=!1){let o=tt(s,t);for(let n of o)await Promise.all(n.map(async r=>{try{return typeof r.cb=="function"?await r.cb():await r.cb}catch(c){return e(c instanceof Error?c:new Error(`${c}`))}}))}import{v as T}from"valleyed";var ve=()=>T.object({app:T.object({name:T.string()}),log:T.defaults(T.object({level:T.defaults(T.in(["fatal","error","warn","info","debug","trace","silent"]),"info")}),{}),utils:T.defaults(T.object({hashSaltRounds:T.defaults(T.number(),10),paginationDefaultLimit:T.defaults(T.number(),100),maxFileUploadSizeInMb:T.defaults(T.number(),500)}),{})});var H=class s{static#e;static#t;static#o={};settings;log;constructor(e){s.#t=this,this.settings=Object.freeze(e),this.log=I({level:this.settings.log.level,serializers:{err:I.stdSerializers.err,error:I.stdSerializers.err,req:I.stdSerializers.req,res:I.stdSerializers.res},mixin:()=>({instanceId:s.#e})}),s.#s()}alias(e){if(s.#e!==void 0)return s.crash(new h("Instance already has an alias",{}));s.#e=e}get id(){return s.#e===void 0?s.crash(new h("Instance doesnt have an alias yet",{})):s.#e}getScopedName(e,t="."){return[this.settings.app.name,e].join(t)}async start(){try{await z(s.#o.setup??[]),await z(s.#o.start??[])}catch(e){s.crash(new h("Error starting instance",{},e))}}static envs(e){let t=Ce.validate(e,process.env);return t.valid||s.crash(new h(`Environment variables are not valid
30
+ ${t.error.toString()}`,{messages:t.error.messages})),t.value}static create(e){if(s.#t)return s.crash(new h("Instance has been initialized already",{}));let t=Ce.validate(ve(),e);return t.valid||s.crash(new h(`Settings are not valid
31
+ ${t.error.toString()}`,{messages:t.error.messages})),new s(t.value)}static get(){return s.#t?s.#t:s.crash(new h("Has not been initialized. Make sure an instance has been created before you get an instance",{}))}static maybeGet(){return s.#t}static on(e,t,o){s.#o[e]??=[];let n={cb:t,class:o?.class,after:o?.after??[]};xe(s.#o[e],n)}static#s(){Object.entries({SIGHUP:1,SIGINT:2,SIGTERM:15}).forEach(([t,o])=>{process.on(t,async()=>{await z(s.#o.close??[],()=>{},!0),process.exit(128+o)})})}static resolveBeforeCrash(e){let t=e();return s.on("close",async()=>await t),t}static crash(e){console.error(e),process.exit(1)}static createId(e){return`${e?.prefix??""}${st(e?.time?.getTime())}`}};var He=s=>E.array(E.file(s).pipe(e=>{let t=`is larger than allowed limit of ${H.get().settings.utils.maxFileUploadSizeInMb}mb`;if(e?!e.isTruncated:!0)return e;throw ot.root(t,e)})),rt=s=>E.define(E.compile(He(s).pipe(E.min(1,"no file provided")).pipe(e=>e[0])),{schema:()=>({type:"string",format:"binary"})}),nt=s=>E.define(E.compile(He(s)),{schema:()=>({type:"string",format:"binary"})}),K=new Te,W=new Te,at=s=>E.define(e=>{let t=K.getStore();if(!t)throw new Error("Request not found in context");let o=E.validate(s(t),e);return o.valid?o.value:o.error}),it=s=>E.define(e=>{let t=W.getStore();if(!t)throw new Error("Response not found in context");let o=E.validate(s(t),e);return o.valid?o.value:o.error});import{v as pt}from"valleyed";function G(s){let e=s.messages.reduce((t,{path:o="",message:n})=>(t[o]?t[o].messages.push(n):t[o]={field:o,messages:[n]},t),{});return new U(Object.values(e))}function qo(s,e){let t=pt.validate(s,e);if(t.valid)return t.value;throw G(t.error)}export{h as a,x as b,Pe as c,G as d,qo as e,C as f,m as g,se as h,lt as i,ft as j,N as k,ie as l,Dt as m,ce as n,Fe as o,X as p,Bt as q,de as r,Ge as s,Ke as t,le as u,P as v,q as w,fe as x,$ as y,he as z,ye as A,Ts as B,we as C,As as D,L as E,S as F,ke as G,J as H,O as I,U as J,H as K};
32
+ //# sourceMappingURL=chunk-FLAPYQUT.min.mjs.map