@fade_networker/vono 0.1.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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/client/composables/navigateTo.d.ts +37 -0
  4. package/dist/client/composables/navigateTo.d.ts.map +1 -0
  5. package/dist/client/composables/navigateTo.js +56 -0
  6. package/dist/client/composables/navigateTo.js.map +1 -0
  7. package/dist/client/composables/useAsyncData.d.ts +35 -0
  8. package/dist/client/composables/useAsyncData.d.ts.map +1 -0
  9. package/dist/client/composables/useAsyncData.js +55 -0
  10. package/dist/client/composables/useAsyncData.js.map +1 -0
  11. package/dist/client/composables/useCookie.d.ts +33 -0
  12. package/dist/client/composables/useCookie.d.ts.map +1 -0
  13. package/dist/client/composables/useCookie.js +61 -0
  14. package/dist/client/composables/useCookie.js.map +1 -0
  15. package/dist/client/composables/useFormErrors.d.ts +34 -0
  16. package/dist/client/composables/useFormErrors.d.ts.map +1 -0
  17. package/dist/client/composables/useFormErrors.js +59 -0
  18. package/dist/client/composables/useFormErrors.js.map +1 -0
  19. package/dist/client/composables/useRouteRules.d.ts +26 -0
  20. package/dist/client/composables/useRouteRules.d.ts.map +1 -0
  21. package/dist/client/composables/useRouteRules.js +44 -0
  22. package/dist/client/composables/useRouteRules.js.map +1 -0
  23. package/dist/client/composables/useSeo.d.ts +35 -0
  24. package/dist/client/composables/useSeo.d.ts.map +1 -0
  25. package/dist/client/composables/useSeo.js +62 -0
  26. package/dist/client/composables/useSeo.js.map +1 -0
  27. package/dist/client/composables/useState.d.ts +35 -0
  28. package/dist/client/composables/useState.d.ts.map +1 -0
  29. package/dist/client/composables/useState.js +73 -0
  30. package/dist/client/composables/useState.js.map +1 -0
  31. package/dist/client/composables/useVonoFetch.d.ts +24 -0
  32. package/dist/client/composables/useVonoFetch.d.ts.map +1 -0
  33. package/dist/client/composables/useVonoFetch.js +49 -0
  34. package/dist/client/composables/useVonoFetch.js.map +1 -0
  35. package/dist/client/index.d.ts +19 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +20 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/layouts/index.d.ts +12 -0
  40. package/dist/client/layouts/index.d.ts.map +1 -0
  41. package/dist/client/layouts/index.js +11 -0
  42. package/dist/client/layouts/index.js.map +1 -0
  43. package/dist/client/layouts/resolve-layout.d.ts +23 -0
  44. package/dist/client/layouts/resolve-layout.d.ts.map +1 -0
  45. package/dist/client/layouts/resolve-layout.js +31 -0
  46. package/dist/client/layouts/resolve-layout.js.map +1 -0
  47. package/dist/client/nuxt-ui/index.d.ts +11 -0
  48. package/dist/client/nuxt-ui/index.d.ts.map +1 -0
  49. package/dist/client/nuxt-ui/index.js +11 -0
  50. package/dist/client/nuxt-ui/index.js.map +1 -0
  51. package/dist/client/nuxt-ui/setup.d.ts +27 -0
  52. package/dist/client/nuxt-ui/setup.d.ts.map +1 -0
  53. package/dist/client/nuxt-ui/setup.js +40 -0
  54. package/dist/client/nuxt-ui/setup.js.map +1 -0
  55. package/dist/client/pinia-hydration.d.ts +35 -0
  56. package/dist/client/pinia-hydration.d.ts.map +1 -0
  57. package/dist/client/pinia-hydration.js +48 -0
  58. package/dist/client/pinia-hydration.js.map +1 -0
  59. package/dist/config/define-config.d.ts +25 -0
  60. package/dist/config/define-config.d.ts.map +1 -0
  61. package/dist/config/define-config.js +63 -0
  62. package/dist/config/define-config.js.map +1 -0
  63. package/dist/config/env-helpers.d.ts +30 -0
  64. package/dist/config/env-helpers.d.ts.map +1 -0
  65. package/dist/config/env-helpers.js +50 -0
  66. package/dist/config/env-helpers.js.map +1 -0
  67. package/dist/config/use-config.d.ts +31 -0
  68. package/dist/config/use-config.d.ts.map +1 -0
  69. package/dist/config/use-config.js +49 -0
  70. package/dist/config/use-config.js.map +1 -0
  71. package/dist/index.d.ts +16 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +15 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/module-system/define-module.d.ts +82 -0
  76. package/dist/module-system/define-module.d.ts.map +1 -0
  77. package/dist/module-system/define-module.js +37 -0
  78. package/dist/module-system/define-module.js.map +1 -0
  79. package/dist/module-system/index.d.ts +14 -0
  80. package/dist/module-system/index.d.ts.map +1 -0
  81. package/dist/module-system/index.js +13 -0
  82. package/dist/module-system/index.js.map +1 -0
  83. package/dist/module-system/module-registry.d.ts +37 -0
  84. package/dist/module-system/module-registry.d.ts.map +1 -0
  85. package/dist/module-system/module-registry.js +68 -0
  86. package/dist/module-system/module-registry.js.map +1 -0
  87. package/dist/module-system/vite-integration.d.ts +23 -0
  88. package/dist/module-system/vite-integration.d.ts.map +1 -0
  89. package/dist/module-system/vite-integration.js +67 -0
  90. package/dist/module-system/vite-integration.js.map +1 -0
  91. package/dist/server/app-template.d.ts +47 -0
  92. package/dist/server/app-template.d.ts.map +1 -0
  93. package/dist/server/app-template.js +224 -0
  94. package/dist/server/app-template.js.map +1 -0
  95. package/dist/server/auth/gates.d.ts +79 -0
  96. package/dist/server/auth/gates.d.ts.map +1 -0
  97. package/dist/server/auth/gates.js +125 -0
  98. package/dist/server/auth/gates.js.map +1 -0
  99. package/dist/server/auth/index.d.ts +12 -0
  100. package/dist/server/auth/index.d.ts.map +1 -0
  101. package/dist/server/auth/index.js +12 -0
  102. package/dist/server/auth/index.js.map +1 -0
  103. package/dist/server/dto/query.dto.d.ts +44 -0
  104. package/dist/server/dto/query.dto.d.ts.map +1 -0
  105. package/dist/server/dto/query.dto.js +86 -0
  106. package/dist/server/dto/query.dto.js.map +1 -0
  107. package/dist/server/email/define-email.d.ts +41 -0
  108. package/dist/server/email/define-email.d.ts.map +1 -0
  109. package/dist/server/email/define-email.js +50 -0
  110. package/dist/server/email/define-email.js.map +1 -0
  111. package/dist/server/email/drivers/console.d.ts +16 -0
  112. package/dist/server/email/drivers/console.d.ts.map +1 -0
  113. package/dist/server/email/drivers/console.js +22 -0
  114. package/dist/server/email/drivers/console.js.map +1 -0
  115. package/dist/server/email/drivers/postmark.d.ts +19 -0
  116. package/dist/server/email/drivers/postmark.d.ts.map +1 -0
  117. package/dist/server/email/drivers/postmark.js +39 -0
  118. package/dist/server/email/drivers/postmark.js.map +1 -0
  119. package/dist/server/email/drivers/resend.d.ts +19 -0
  120. package/dist/server/email/drivers/resend.d.ts.map +1 -0
  121. package/dist/server/email/drivers/resend.js +37 -0
  122. package/dist/server/email/drivers/resend.js.map +1 -0
  123. package/dist/server/email/drivers/smtp.d.ts +26 -0
  124. package/dist/server/email/drivers/smtp.d.ts.map +1 -0
  125. package/dist/server/email/drivers/smtp.js +37 -0
  126. package/dist/server/email/drivers/smtp.js.map +1 -0
  127. package/dist/server/email/send-email.d.ts +42 -0
  128. package/dist/server/email/send-email.d.ts.map +1 -0
  129. package/dist/server/email/send-email.js +69 -0
  130. package/dist/server/email/send-email.js.map +1 -0
  131. package/dist/server/env-validation/define-env.d.ts +45 -0
  132. package/dist/server/env-validation/define-env.d.ts.map +1 -0
  133. package/dist/server/env-validation/define-env.js +41 -0
  134. package/dist/server/env-validation/define-env.js.map +1 -0
  135. package/dist/server/env-validation/index.d.ts +13 -0
  136. package/dist/server/env-validation/index.d.ts.map +1 -0
  137. package/dist/server/env-validation/index.js +12 -0
  138. package/dist/server/env-validation/index.js.map +1 -0
  139. package/dist/server/env-validation/validate-at-startup.d.ts +29 -0
  140. package/dist/server/env-validation/validate-at-startup.d.ts.map +1 -0
  141. package/dist/server/env-validation/validate-at-startup.js +61 -0
  142. package/dist/server/env-validation/validate-at-startup.js.map +1 -0
  143. package/dist/server/i18n/composables/useI18n.d.ts +39 -0
  144. package/dist/server/i18n/composables/useI18n.d.ts.map +1 -0
  145. package/dist/server/i18n/composables/useI18n.js +93 -0
  146. package/dist/server/i18n/composables/useI18n.js.map +1 -0
  147. package/dist/server/i18n/detect-locale.d.ts +22 -0
  148. package/dist/server/i18n/detect-locale.d.ts.map +1 -0
  149. package/dist/server/i18n/detect-locale.js +42 -0
  150. package/dist/server/i18n/detect-locale.js.map +1 -0
  151. package/dist/server/i18n/index.d.ts +14 -0
  152. package/dist/server/i18n/index.d.ts.map +1 -0
  153. package/dist/server/i18n/index.js +13 -0
  154. package/dist/server/i18n/index.js.map +1 -0
  155. package/dist/server/i18n/translate.d.ts +38 -0
  156. package/dist/server/i18n/translate.d.ts.map +1 -0
  157. package/dist/server/i18n/translate.js +83 -0
  158. package/dist/server/i18n/translate.js.map +1 -0
  159. package/dist/server/index.d.ts +40 -0
  160. package/dist/server/index.d.ts.map +1 -0
  161. package/dist/server/index.js +36 -0
  162. package/dist/server/index.js.map +1 -0
  163. package/dist/server/jobs/define-job.d.ts +50 -0
  164. package/dist/server/jobs/define-job.d.ts.map +1 -0
  165. package/dist/server/jobs/define-job.js +32 -0
  166. package/dist/server/jobs/define-job.js.map +1 -0
  167. package/dist/server/jobs/index.d.ts +13 -0
  168. package/dist/server/jobs/index.d.ts.map +1 -0
  169. package/dist/server/jobs/index.js +12 -0
  170. package/dist/server/jobs/index.js.map +1 -0
  171. package/dist/server/jobs/runner.d.ts +37 -0
  172. package/dist/server/jobs/runner.d.ts.map +1 -0
  173. package/dist/server/jobs/runner.js +75 -0
  174. package/dist/server/jobs/runner.js.map +1 -0
  175. package/dist/server/middleware/configProvider.d.ts +26 -0
  176. package/dist/server/middleware/configProvider.d.ts.map +1 -0
  177. package/dist/server/middleware/configProvider.js +78 -0
  178. package/dist/server/middleware/configProvider.js.map +1 -0
  179. package/dist/server/middleware/dbProvider.d.ts +27 -0
  180. package/dist/server/middleware/dbProvider.d.ts.map +1 -0
  181. package/dist/server/middleware/dbProvider.js +66 -0
  182. package/dist/server/middleware/dbProvider.js.map +1 -0
  183. package/dist/server/middleware/rateLimiter.d.ts +74 -0
  184. package/dist/server/middleware/rateLimiter.d.ts.map +1 -0
  185. package/dist/server/middleware/rateLimiter.js +164 -0
  186. package/dist/server/middleware/rateLimiter.js.map +1 -0
  187. package/dist/server/middleware/validator.d.ts +57 -0
  188. package/dist/server/middleware/validator.d.ts.map +1 -0
  189. package/dist/server/middleware/validator.js +128 -0
  190. package/dist/server/middleware/validator.js.map +1 -0
  191. package/dist/server/openapi/append-tag.d.ts +21 -0
  192. package/dist/server/openapi/append-tag.d.ts.map +1 -0
  193. package/dist/server/openapi/append-tag.js +54 -0
  194. package/dist/server/openapi/append-tag.js.map +1 -0
  195. package/dist/server/openapi/index.d.ts +13 -0
  196. package/dist/server/openapi/index.d.ts.map +1 -0
  197. package/dist/server/openapi/index.js +12 -0
  198. package/dist/server/openapi/index.js.map +1 -0
  199. package/dist/server/openapi/spec-template.d.ts +45 -0
  200. package/dist/server/openapi/spec-template.d.ts.map +1 -0
  201. package/dist/server/openapi/spec-template.js +132 -0
  202. package/dist/server/openapi/spec-template.js.map +1 -0
  203. package/dist/server/renderer.d.ts +62 -0
  204. package/dist/server/renderer.d.ts.map +1 -0
  205. package/dist/server/renderer.js +115 -0
  206. package/dist/server/renderer.js.map +1 -0
  207. package/dist/server/resolvers/cache-driver.d.ts +22 -0
  208. package/dist/server/resolvers/cache-driver.d.ts.map +1 -0
  209. package/dist/server/resolvers/cache-driver.js +29 -0
  210. package/dist/server/resolvers/cache-driver.js.map +1 -0
  211. package/dist/server/resolvers/index.d.ts +17 -0
  212. package/dist/server/resolvers/index.d.ts.map +1 -0
  213. package/dist/server/resolvers/index.js +14 -0
  214. package/dist/server/resolvers/index.js.map +1 -0
  215. package/dist/server/resolvers/queue-driver.d.ts +25 -0
  216. package/dist/server/resolvers/queue-driver.d.ts.map +1 -0
  217. package/dist/server/resolvers/queue-driver.js +44 -0
  218. package/dist/server/resolvers/queue-driver.js.map +1 -0
  219. package/dist/server/resolvers/storage-driver.d.ts +24 -0
  220. package/dist/server/resolvers/storage-driver.d.ts.map +1 -0
  221. package/dist/server/resolvers/storage-driver.js +38 -0
  222. package/dist/server/resolvers/storage-driver.js.map +1 -0
  223. package/dist/server/resolvers/validate-compatibility.d.ts +22 -0
  224. package/dist/server/resolvers/validate-compatibility.d.ts.map +1 -0
  225. package/dist/server/resolvers/validate-compatibility.js +83 -0
  226. package/dist/server/resolvers/validate-compatibility.js.map +1 -0
  227. package/dist/server/resources/base-resource.d.ts +57 -0
  228. package/dist/server/resources/base-resource.d.ts.map +1 -0
  229. package/dist/server/resources/base-resource.js +74 -0
  230. package/dist/server/resources/base-resource.js.map +1 -0
  231. package/dist/server/route-rules.d.ts +45 -0
  232. package/dist/server/route-rules.d.ts.map +1 -0
  233. package/dist/server/route-rules.js +66 -0
  234. package/dist/server/route-rules.js.map +1 -0
  235. package/dist/server/seo.d.ts +58 -0
  236. package/dist/server/seo.d.ts.map +1 -0
  237. package/dist/server/seo.js +85 -0
  238. package/dist/server/seo.js.map +1 -0
  239. package/dist/server/storage/drivers/bunny.d.ts +33 -0
  240. package/dist/server/storage/drivers/bunny.d.ts.map +1 -0
  241. package/dist/server/storage/drivers/bunny.js +70 -0
  242. package/dist/server/storage/drivers/bunny.js.map +1 -0
  243. package/dist/server/storage/drivers/cloudinary.d.ts +30 -0
  244. package/dist/server/storage/drivers/cloudinary.d.ts.map +1 -0
  245. package/dist/server/storage/drivers/cloudinary.js +86 -0
  246. package/dist/server/storage/drivers/cloudinary.js.map +1 -0
  247. package/dist/server/storage/drivers/local.d.ts +28 -0
  248. package/dist/server/storage/drivers/local.d.ts.map +1 -0
  249. package/dist/server/storage/drivers/local.js +57 -0
  250. package/dist/server/storage/drivers/local.js.map +1 -0
  251. package/dist/server/storage/drivers/r2.d.ts +32 -0
  252. package/dist/server/storage/drivers/r2.d.ts.map +1 -0
  253. package/dist/server/storage/drivers/r2.js +70 -0
  254. package/dist/server/storage/drivers/r2.js.map +1 -0
  255. package/dist/server/storage/drivers/s3.d.ts +29 -0
  256. package/dist/server/storage/drivers/s3.d.ts.map +1 -0
  257. package/dist/server/storage/drivers/s3.js +68 -0
  258. package/dist/server/storage/drivers/s3.js.map +1 -0
  259. package/dist/server/storage/index.d.ts +17 -0
  260. package/dist/server/storage/index.d.ts.map +1 -0
  261. package/dist/server/storage/index.js +16 -0
  262. package/dist/server/storage/index.js.map +1 -0
  263. package/dist/server/storage/types.d.ts +70 -0
  264. package/dist/server/storage/types.d.ts.map +1 -0
  265. package/dist/server/storage/types.js +11 -0
  266. package/dist/server/storage/types.js.map +1 -0
  267. package/dist/server/storage/use-storage.d.ts +54 -0
  268. package/dist/server/storage/use-storage.d.ts.map +1 -0
  269. package/dist/server/storage/use-storage.js +150 -0
  270. package/dist/server/storage/use-storage.js.map +1 -0
  271. package/dist/server/stream-renderer.d.ts +49 -0
  272. package/dist/server/stream-renderer.d.ts.map +1 -0
  273. package/dist/server/stream-renderer.js +89 -0
  274. package/dist/server/stream-renderer.js.map +1 -0
  275. package/dist/server/templates/health.routes.d.ts +22 -0
  276. package/dist/server/templates/health.routes.d.ts.map +1 -0
  277. package/dist/server/templates/health.routes.js +28 -0
  278. package/dist/server/templates/health.routes.js.map +1 -0
  279. package/dist/server/utils/storage-url.d.ts +36 -0
  280. package/dist/server/utils/storage-url.d.ts.map +1 -0
  281. package/dist/server/utils/storage-url.js +53 -0
  282. package/dist/server/utils/storage-url.js.map +1 -0
  283. package/dist/shared/utils/autoRoutes.d.ts +22 -0
  284. package/dist/shared/utils/autoRoutes.d.ts.map +1 -0
  285. package/dist/shared/utils/autoRoutes.js +29 -0
  286. package/dist/shared/utils/autoRoutes.js.map +1 -0
  287. package/dist/shared/utils/id.d.ts +25 -0
  288. package/dist/shared/utils/id.d.ts.map +1 -0
  289. package/dist/shared/utils/id.js +29 -0
  290. package/dist/shared/utils/id.js.map +1 -0
  291. package/dist/shared/utils/logger.d.ts +33 -0
  292. package/dist/shared/utils/logger.d.ts.map +1 -0
  293. package/dist/shared/utils/logger.js +65 -0
  294. package/dist/shared/utils/logger.js.map +1 -0
  295. package/dist/shared/utils/mappers.d.ts +23 -0
  296. package/dist/shared/utils/mappers.d.ts.map +1 -0
  297. package/dist/shared/utils/mappers.js +37 -0
  298. package/dist/shared/utils/mappers.js.map +1 -0
  299. package/dist/shared/utils/pagination.d.ts +26 -0
  300. package/dist/shared/utils/pagination.d.ts.map +1 -0
  301. package/dist/shared/utils/pagination.js +28 -0
  302. package/dist/shared/utils/pagination.js.map +1 -0
  303. package/dist/shared/utils/response.d.ts +38 -0
  304. package/dist/shared/utils/response.d.ts.map +1 -0
  305. package/dist/shared/utils/response.js +46 -0
  306. package/dist/shared/utils/response.js.map +1 -0
  307. package/dist/shared/utils/softDeletes.d.ts +90 -0
  308. package/dist/shared/utils/softDeletes.d.ts.map +1 -0
  309. package/dist/shared/utils/softDeletes.js +72 -0
  310. package/dist/shared/utils/softDeletes.js.map +1 -0
  311. package/dist/types/index.d.ts +191 -0
  312. package/dist/types/index.d.ts.map +1 -0
  313. package/dist/types/index.js +12 -0
  314. package/dist/types/index.js.map +1 -0
  315. package/dist/vite/index.d.ts +30 -0
  316. package/dist/vite/index.d.ts.map +1 -0
  317. package/dist/vite/index.js +218 -0
  318. package/dist/vite/index.js.map +1 -0
  319. package/package.json +77 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ export { createVonoApp } from './app-template.js';
11
+ export type { VonoAppOptions } from './app-template.js';
12
+ export { configProvider } from './middleware/configProvider.js';
13
+ export { dbProvider } from './middleware/dbProvider.js';
14
+ export { ApiResponse, success, error } from '../shared/utils/response.js';
15
+ export { buildPaginationMeta } from '../shared/utils/pagination.js';
16
+ export { generateId, prefixedId } from '../shared/utils/id.js';
17
+ export { toCamel } from '../shared/utils/mappers.js';
18
+ export { withSoftDeletes, onlyTrashed, withTrashed, softDelete, forceDelete, restore } from '../shared/utils/softDeletes.js';
19
+ export { autoRegisterRoutes } from '../shared/utils/autoRoutes.js';
20
+ export { Logger } from '../shared/utils/logger.js';
21
+ export { zodValidator } from './middleware/validator.js';
22
+ export type { ValidatorTarget, ValidationErrorBody } from './middleware/validator.js';
23
+ export { QuerySchema } from './dto/query.dto.js';
24
+ export type { QueryDto } from './dto/query.dto.js';
25
+ export { createRateLimiter, createConfiguredRateLimiters, authRateLimiter, otpRateLimiter, apiRateLimiter, } from './middleware/rateLimiter.js';
26
+ export { useStorage } from './storage/index.js';
27
+ export type { StorageDriver, StorageConfig, UploadOptions, UploadResult } from './storage/index.js';
28
+ export { defineJob, startJobs, runJobNow } from './jobs/index.js';
29
+ export type { JobDefinition, JobContext } from './jobs/index.js';
30
+ export { defineEmail } from './email/define-email.js';
31
+ export { sendEmail } from './email/send-email.js';
32
+ export type { EmailDefinition, RenderedEmail, EmailTemplate } from './email/define-email.js';
33
+ export type { SendEmailOptions } from './email/send-email.js';
34
+ export { BaseResource } from './resources/base-resource.js';
35
+ export type { ResourceCollection } from './resources/base-resource.js';
36
+ export { resolveStorageUrl } from './utils/storage-url.js';
37
+ export type { StorageUrlConfig } from './utils/storage-url.js';
38
+ export { registerGate, registerPolicy, checkGate, checkPolicy, can, authorize, gate, policy, } from './auth/index.js';
39
+ export type { GateHandler, PolicyHandler } from './auth/index.js';
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC5H,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGnG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,GAAG,EACH,SAAS,EACT,IAAI,EACJ,MAAM,GACP,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ // vono/server — server-side helpers and middleware
11
+ export { createVonoApp } from './app-template.js';
12
+ export { configProvider } from './middleware/configProvider.js';
13
+ export { dbProvider } from './middleware/dbProvider.js';
14
+ export { ApiResponse, success, error } from '../shared/utils/response.js';
15
+ export { buildPaginationMeta } from '../shared/utils/pagination.js';
16
+ export { generateId, prefixedId } from '../shared/utils/id.js';
17
+ export { toCamel } from '../shared/utils/mappers.js';
18
+ export { withSoftDeletes, onlyTrashed, withTrashed, softDelete, forceDelete, restore } from '../shared/utils/softDeletes.js';
19
+ export { autoRegisterRoutes } from '../shared/utils/autoRoutes.js';
20
+ export { Logger } from '../shared/utils/logger.js';
21
+ export { zodValidator } from './middleware/validator.js';
22
+ export { QuerySchema } from './dto/query.dto.js';
23
+ export { createRateLimiter, createConfiguredRateLimiters, authRateLimiter, otpRateLimiter, apiRateLimiter, } from './middleware/rateLimiter.js';
24
+ // Storage
25
+ export { useStorage } from './storage/index.js';
26
+ // Jobs / Cron
27
+ export { defineJob, startJobs, runJobNow } from './jobs/index.js';
28
+ // Email
29
+ export { defineEmail } from './email/define-email.js';
30
+ export { sendEmail } from './email/send-email.js';
31
+ // Resource transformers
32
+ export { BaseResource } from './resources/base-resource.js';
33
+ export { resolveStorageUrl } from './utils/storage-url.js';
34
+ // Authorization — Gates & Policies
35
+ export { registerGate, registerPolicy, checkGate, checkPolicy, can, authorize, gate, policy, } from './auth/index.js';
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mDAAmD;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC5H,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAA;AAEpC,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG/C,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGjE,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAIjD,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,mCAAmC;AACnC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,GAAG,EACH,SAAS,EACT,IAAI,EACJ,MAAM,GACP,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
11
+ import type { Config } from '../../types/index.js';
12
+ import type { Logger } from '../../shared/utils/logger.js';
13
+ export interface JobContext {
14
+ /** Drizzle database instance */
15
+ db: PostgresJsDatabase;
16
+ /** Validated app config */
17
+ config: Config;
18
+ /** Structured logger */
19
+ logger: typeof Logger;
20
+ }
21
+ export interface JobDefinition {
22
+ /** Unique job name — used for `vono jobs:run <name>` */
23
+ name: string;
24
+ /** Cron schedule expression (e.g. '0 * * * *' for every hour) */
25
+ schedule: string;
26
+ /** Human-readable description */
27
+ description?: string;
28
+ /** Job handler — receives db, config, and logger */
29
+ handler: (ctx: JobContext) => Promise<void>;
30
+ }
31
+ /**
32
+ * `defineJob({ name, schedule, description, handler })` — registers a cron job.
33
+ *
34
+ * Returns the job definition object. Pass it to `startJobs()` to activate.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * export const cleanupJob = defineJob({
39
+ * name: 'cleanup-expired-sessions',
40
+ * schedule: '0 2 * * *', // 2am daily
41
+ * description: 'Remove expired auth sessions',
42
+ * async handler({ db, logger }) {
43
+ * const deleted = await db.delete(authSessions).where(lt(authSessions.expires_at, new Date()))
44
+ * logger.info('Expired sessions cleaned', { count: deleted.rowCount })
45
+ * },
46
+ * })
47
+ * ```
48
+ */
49
+ export declare function defineJob(definition: JobDefinition): JobDefinition;
50
+ //# sourceMappingURL=define-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-job.d.ts","sourceRoot":"","sources":["../../../src/server/jobs/define-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAI1D,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,EAAE,EAAE,kBAAkB,CAAA;IACtB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,MAAM,EAAE,OAAO,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5C;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,aAAa,CAElE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ // ─── defineJob ────────────────────────────────────────────────────────────────
11
+ /**
12
+ * `defineJob({ name, schedule, description, handler })` — registers a cron job.
13
+ *
14
+ * Returns the job definition object. Pass it to `startJobs()` to activate.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * export const cleanupJob = defineJob({
19
+ * name: 'cleanup-expired-sessions',
20
+ * schedule: '0 2 * * *', // 2am daily
21
+ * description: 'Remove expired auth sessions',
22
+ * async handler({ db, logger }) {
23
+ * const deleted = await db.delete(authSessions).where(lt(authSessions.expires_at, new Date()))
24
+ * logger.info('Expired sessions cleaned', { count: deleted.rowCount })
25
+ * },
26
+ * })
27
+ * ```
28
+ */
29
+ export function defineJob(definition) {
30
+ return definition;
31
+ }
32
+ //# sourceMappingURL=define-job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-job.js","sourceRoot":"","sources":["../../../src/server/jobs/define-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4BH,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAC,UAAyB;IACjD,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ export { defineJob } from './define-job.js';
11
+ export type { JobDefinition, JobContext } from './define-job.js';
12
+ export { startJobs, runJobNow } from './runner.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ export { defineJob } from './define-job.js';
11
+ export { startJobs, runJobNow } from './runner.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
11
+ import type { Config } from '../../types/index.js';
12
+ import type { JobDefinition } from './define-job.js';
13
+ /**
14
+ * `startJobs(jobs, db, config)` — starts all registered cron jobs.
15
+ *
16
+ * Uses `node-cron` for Node/Bun targets. Dynamically imported to avoid
17
+ * bundling it in Cloudflare Workers builds.
18
+ *
19
+ * For CF Workers, use `[triggers]` in `wrangler.jsonc` instead.
20
+ * For Vercel, use `vercel.json` crons config instead.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { startJobs } from 'vono/server'
25
+ * import { cleanupJob } from './jobs/cleanup.job'
26
+ *
27
+ * startJobs([cleanupJob], db, config)
28
+ * ```
29
+ */
30
+ export declare function startJobs(jobs: JobDefinition[], db: PostgresJsDatabase, config: Config): Promise<void>;
31
+ /**
32
+ * `runJobNow(name, jobs, db, config)` — executes a named job immediately.
33
+ *
34
+ * Used by `vono jobs:run <name>` CLI command.
35
+ */
36
+ export declare function runJobNow(name: string, jobs: JobDefinition[], db: PostgresJsDatabase, config: Config): Promise<void>;
37
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/server/jobs/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EAAE,EACrB,EAAE,EAAE,kBAAkB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAID;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,EAAE,EACrB,EAAE,EAAE,kBAAkB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import { Logger } from '../../shared/utils/logger.js';
11
+ // ─── startJobs ────────────────────────────────────────────────────────────────
12
+ /**
13
+ * `startJobs(jobs, db, config)` — starts all registered cron jobs.
14
+ *
15
+ * Uses `node-cron` for Node/Bun targets. Dynamically imported to avoid
16
+ * bundling it in Cloudflare Workers builds.
17
+ *
18
+ * For CF Workers, use `[triggers]` in `wrangler.jsonc` instead.
19
+ * For Vercel, use `vercel.json` crons config instead.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { startJobs } from 'vono/server'
24
+ * import { cleanupJob } from './jobs/cleanup.job'
25
+ *
26
+ * startJobs([cleanupJob], db, config)
27
+ * ```
28
+ */
29
+ export async function startJobs(jobs, db, config) {
30
+ if (jobs.length === 0) {
31
+ Logger.info('[jobs] No jobs registered');
32
+ return;
33
+ }
34
+ // Dynamically import node-cron — not available in CF Workers
35
+ let cron;
36
+ try {
37
+ cron = await import('node-cron');
38
+ }
39
+ catch {
40
+ Logger.warn('[jobs] node-cron not installed — jobs will not run automatically. ' +
41
+ 'Install it with: bun add node-cron');
42
+ return;
43
+ }
44
+ for (const job of jobs) {
45
+ Logger.info('[jobs] Scheduling job', { name: job.name, schedule: job.schedule });
46
+ cron.schedule(job.schedule, async () => {
47
+ Logger.info('[jobs] Running job', { name: job.name });
48
+ try {
49
+ await job.handler({ db, config, logger: Logger });
50
+ Logger.info('[jobs] Job completed', { name: job.name });
51
+ }
52
+ catch (err) {
53
+ Logger.error('[jobs] Job failed', { name: job.name, error: String(err) });
54
+ }
55
+ });
56
+ }
57
+ Logger.info('[jobs] All jobs scheduled', { count: jobs.length });
58
+ }
59
+ // ─── runJobNow ────────────────────────────────────────────────────────────────
60
+ /**
61
+ * `runJobNow(name, jobs, db, config)` — executes a named job immediately.
62
+ *
63
+ * Used by `vono jobs:run <name>` CLI command.
64
+ */
65
+ export async function runJobNow(name, jobs, db, config) {
66
+ const job = jobs.find((j) => j.name === name);
67
+ if (!job) {
68
+ const available = jobs.map((j) => j.name).join(', ');
69
+ throw new Error(`[jobs] Job "${name}" not found. Available jobs: ${available || '(none)'}`);
70
+ }
71
+ Logger.info('[jobs] Running job immediately', { name: job.name });
72
+ await job.handler({ db, config, logger: Logger });
73
+ Logger.info('[jobs] Job completed', { name: job.name });
74
+ }
75
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/server/jobs/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAGrD,iFAAiF;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAqB,EACrB,EAAsB,EACtB,MAAc;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAM;IACR,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAA0D,CAAA;IAC9D,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAgB,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,oEAAoE;YAC9E,oCAAoC,CAAC,CAAA;QACvC,OAAM;IACR,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEhF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACrD,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;gBACjD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,IAAqB,EACrB,EAAsB,EACtB,MAAc;IAEd,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,gCAAgC,SAAS,IAAI,QAAQ,EAAE,CAC3E,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACjE,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AACzD,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import type { AppVariables, Env } from '../../types/index.js';
11
+ /**
12
+ * Config provider middleware.
13
+ *
14
+ * Reads environment variables from c.env (Cloudflare Workers) or
15
+ * process.env (Node/Bun), validates required vars, and sets c.var.config.
16
+ *
17
+ * Apply once on the inner API router — all feature modules inherit it.
18
+ *
19
+ * Usage:
20
+ * api.use('*', configProvider)
21
+ */
22
+ export declare const configProvider: import("hono").MiddlewareHandler<{
23
+ Variables: AppVariables;
24
+ Bindings: Env;
25
+ }, string, {}>;
26
+ //# sourceMappingURL=configProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configProvider.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/configProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAU,YAAY,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAErE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc;eACd,YAAY;cACb,GAAG;cAsEb,CAAA"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import { createMiddleware } from 'hono/factory';
11
+ /**
12
+ * Config provider middleware.
13
+ *
14
+ * Reads environment variables from c.env (Cloudflare Workers) or
15
+ * process.env (Node/Bun), validates required vars, and sets c.var.config.
16
+ *
17
+ * Apply once on the inner API router — all feature modules inherit it.
18
+ *
19
+ * Usage:
20
+ * api.use('*', configProvider)
21
+ */
22
+ export const configProvider = createMiddleware(async (c, next) => {
23
+ const bindings = c.env ?? {};
24
+ /**
25
+ * Read a required env var — throws if missing.
26
+ * In production, error messages are generic to avoid leaking config keys.
27
+ */
28
+ function get(key) {
29
+ const value = bindings[key] ??
30
+ (typeof process !== 'undefined' ? process.env[key] : undefined);
31
+ if (!value) {
32
+ const isDev = (bindings['NODE_ENV'] ?? process.env['NODE_ENV']) !== 'production';
33
+ throw new Error(isDev
34
+ ? `[vono] configProvider: Missing required env var: ${key}\nAdd it to your .env file.`
35
+ : '[vono] Server configuration error. Check your environment variables.');
36
+ }
37
+ return value;
38
+ }
39
+ /**
40
+ * Read an optional env var — returns empty string if missing.
41
+ */
42
+ function getOptional(key) {
43
+ return (bindings[key] ??
44
+ (typeof process !== 'undefined' ? process.env[key] : undefined) ??
45
+ '');
46
+ }
47
+ const config = {
48
+ // Required
49
+ DATABASE_URL: get('DATABASE_URL'),
50
+ JWT_SECRET: get('JWT_SECRET'),
51
+ // Optional with defaults
52
+ CLIENT_URL: getOptional('CLIENT_URL'),
53
+ NODE_ENV: getOptional('NODE_ENV') || 'development',
54
+ ALLOWED_ORIGINS: getOptional('ALLOWED_ORIGINS'),
55
+ // OAuth
56
+ GOOGLE_CLIENT_ID: getOptional('GOOGLE_CLIENT_ID'),
57
+ GOOGLE_CLIENT_SECRET: getOptional('GOOGLE_CLIENT_SECRET'),
58
+ GITHUB_CLIENT_ID: getOptional('GITHUB_CLIENT_ID'),
59
+ GITHUB_CLIENT_SECRET: getOptional('GITHUB_CLIENT_SECRET'),
60
+ // Email
61
+ RESEND_API_KEY: getOptional('RESEND_API_KEY'),
62
+ // Payment
63
+ PAYSTACK_PUBLIC_KEY: getOptional('PAYSTACK_PUBLIC_KEY'),
64
+ PAYSTACK_SECRET_KEY: getOptional('PAYSTACK_SECRET_KEY'),
65
+ PAYSTACK_WEBHOOK_SECRET: getOptional('PAYSTACK_WEBHOOK_SECRET'),
66
+ STRIPE_PUBLISHABLE_KEY: getOptional('STRIPE_PUBLISHABLE_KEY'),
67
+ STRIPE_SECRET_KEY: getOptional('STRIPE_SECRET_KEY'),
68
+ STRIPE_WEBHOOK_SECRET: getOptional('STRIPE_WEBHOOK_SECRET'),
69
+ PAYMENT_CREDS_ENCRYPTION_KEY: getOptional('PAYMENT_CREDS_ENCRYPTION_KEY'),
70
+ // Cloudflare
71
+ CLOUDFLARE_API_TOKEN: getOptional('CLOUDFLARE_API_TOKEN'),
72
+ CLOUDFLARE_ACCOUNT_ID: getOptional('CLOUDFLARE_ACCOUNT_ID'),
73
+ CLOUDFLARE_ZONE_NAME: getOptional('CLOUDFLARE_ZONE_NAME'),
74
+ };
75
+ c.set('config', config);
76
+ await next();
77
+ });
78
+ //# sourceMappingURL=configProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configProvider.js","sourceRoot":"","sources":["../../../src/server/middleware/configProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAG3C,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;IACnB,MAAM,QAAQ,GAAI,CAAC,CAAC,GAA0C,IAAI,EAAE,CAAA;IAEpE;;;OAGG;IACH,SAAS,GAAG,CAAC,GAAW;QACtB,MAAM,KAAK,GACT,QAAQ,CAAC,GAAG,CAAC;YACb,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,YAAY,CAAA;YAChF,MAAM,IAAI,KAAK,CACb,KAAK;gBACH,CAAC,CAAC,oDAAoD,GAAG,6BAA6B;gBACtF,CAAC,CAAC,sEAAsE,CAC3E,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,SAAS,WAAW,CAAC,GAAW;QAC9B,OAAO,CACL,QAAQ,CAAC,GAAG,CAAC;YACb,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,EAAE,CACH,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,WAAW;QACX,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC;QACjC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC;QAE7B,yBAAyB;QACzB,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,aAAa;QAClD,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC;QAE/C,QAAQ;QACR,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAAC;QACjD,oBAAoB,EAAE,WAAW,CAAC,sBAAsB,CAAC;QACzD,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAAC;QACjD,oBAAoB,EAAE,WAAW,CAAC,sBAAsB,CAAC;QAEzD,QAAQ;QACR,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC;QAE7C,UAAU;QACV,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CAAC;QACvD,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CAAC;QACvD,uBAAuB,EAAE,WAAW,CAAC,yBAAyB,CAAC;QAC/D,sBAAsB,EAAE,WAAW,CAAC,wBAAwB,CAAC;QAC7D,iBAAiB,EAAE,WAAW,CAAC,mBAAmB,CAAC;QACnD,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC3D,4BAA4B,EAAE,WAAW,CAAC,8BAA8B,CAAC;QAEzE,aAAa;QACb,oBAAoB,EAAE,WAAW,CAAC,sBAAsB,CAAC;QACzD,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC3D,oBAAoB,EAAE,WAAW,CAAC,sBAAsB,CAAC;KAC1D,CAAA;IAED,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACvB,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import type { AppVariables, Env } from '../../types/index.js';
11
+ /**
12
+ * DB provider middleware.
13
+ *
14
+ * Creates a Drizzle client per request (or uses a shared pool for Node/Bun),
15
+ * sets c.var.db, and always closes the connection in a finally block.
16
+ *
17
+ * The actual createDb factory is resolved at runtime from the project's
18
+ * src/db/index.ts — this middleware is runtime-agnostic.
19
+ *
20
+ * Apply once on the inner API router:
21
+ * api.use('*', dbProvider)
22
+ */
23
+ export declare const dbProvider: import("hono").MiddlewareHandler<{
24
+ Variables: AppVariables;
25
+ Bindings: Env;
26
+ }, string, {}>;
27
+ //# sourceMappingURL=dbProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbProvider.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/dbProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU;eACV,YAAY;cACb,GAAG;cAiDb,CAAA"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import { createMiddleware } from 'hono/factory';
11
+ import { Logger } from '../../shared/utils/logger.js';
12
+ /**
13
+ * DB provider middleware.
14
+ *
15
+ * Creates a Drizzle client per request (or uses a shared pool for Node/Bun),
16
+ * sets c.var.db, and always closes the connection in a finally block.
17
+ *
18
+ * The actual createDb factory is resolved at runtime from the project's
19
+ * src/db/index.ts — this middleware is runtime-agnostic.
20
+ *
21
+ * Apply once on the inner API router:
22
+ * api.use('*', dbProvider)
23
+ */
24
+ export const dbProvider = createMiddleware(async (c, next) => {
25
+ const config = c.get('config');
26
+ const env = c.env;
27
+ // Resolve connection string:
28
+ // - Cloudflare Workers: use Hyperdrive binding
29
+ // - Node/Bun: use DATABASE_URL from config
30
+ const connectionString = env?.HYPERDRIVE?.connectionString ?? config?.DATABASE_URL ?? '';
31
+ if (!connectionString) {
32
+ throw new Error('[vono] dbProvider: No database connection string found. ' +
33
+ 'Set DATABASE_URL in your .env file.');
34
+ }
35
+ // Dynamically import createDb from the project's db module.
36
+ // This allows the project to swap the DB driver without changing framework code.
37
+ let db;
38
+ let client = null;
39
+ try {
40
+ // Try to import the project's createDb factory
41
+ const dbModule = await import('/src/db/index.js').catch(() => null);
42
+ if (dbModule?.createDb) {
43
+ const result = await dbModule.createDb(connectionString);
44
+ db = result.db;
45
+ client = result.client;
46
+ }
47
+ else {
48
+ // Fallback: set db to null — project must handle this
49
+ Logger.warn('[vono] dbProvider: Could not load src/db/index.js. DB will be null.');
50
+ db = null;
51
+ }
52
+ c.set('db', db);
53
+ await next();
54
+ }
55
+ finally {
56
+ // Always close the connection after the request
57
+ if (client?.end) {
58
+ await client.end().catch((err) => {
59
+ Logger.error('[vono] dbProvider: Error closing DB connection', {
60
+ error: String(err),
61
+ });
62
+ });
63
+ }
64
+ }
65
+ });
66
+ //# sourceMappingURL=dbProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbProvider.js","sourceRoot":"","sources":["../../../src/server/middleware/dbProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAGvC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;IACnB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAU,CAAA;IAExB,6BAA6B;IAC7B,+CAA+C;IAC/C,2CAA2C;IAC3C,MAAM,gBAAgB,GACpB,GAAG,EAAE,UAAU,EAAE,gBAAgB,IAAI,MAAM,EAAE,YAAY,IAAI,EAAE,CAAA;IAEjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,0DAA0D;YAC1D,qCAAqC,CACtC,CAAA;IACH,CAAC;IAED,4DAA4D;IAC5D,iFAAiF;IACjF,IAAI,EAAW,CAAA;IACf,IAAI,MAAM,GAAyC,IAAI,CAAA;IAEvD,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAEnE,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;YACxD,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;YAClF,EAAE,GAAG,IAAI,CAAA;QACX,CAAC;QAED,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACf,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;YAAS,CAAC;QACT,gDAAgD;QAChD,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC;YAChB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxC,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE;oBAC7D,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;iBACnB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * ──────────────────────────────────────────────────────────────────
3
+ * 🏢 Company Name: Bonifade Technologies
4
+ * 👨‍💻 Developer: Bowofade Oyerinde
5
+ * 🐙 GitHub: oyenet1
6
+ * 📅 Created Date: 2026-04-05
7
+ * 🔄 Updated Date: 2026-04-05
8
+ * ──────────────────────────────────────────────────────────────────
9
+ */
10
+ import { createMiddleware } from 'hono/factory';
11
+ import type { RateLimitTier } from '../../types/index.js';
12
+ /**
13
+ * createRateLimiter — build a Hono middleware that enforces a sliding
14
+ * window rate limit using an in-memory store.
15
+ *
16
+ * Lazy-init pattern: the cleanup setInterval is deferred to the FIRST
17
+ * request so it is never called at module load time. This is required
18
+ * for Cloudflare Workers compatibility — CF Workers prohibit top-level
19
+ * I/O and timers outside of request handlers.
20
+ *
21
+ * @param tier — { windowMs, limit } from VonoConfig.rateLimit
22
+ * @param keyFn — function to derive the rate-limit key from the request
23
+ * (defaults to client IP)
24
+ * @param message — custom 429 message
25
+ */
26
+ export declare function createRateLimiter(tier: RateLimitTier, keyFn?: (c: Parameters<ReturnType<typeof createMiddleware>>[0]) => string, message?: string): import("hono").MiddlewareHandler<any, string, {}>;
27
+ /**
28
+ * authRateLimiter — strict limiter for login / register endpoints.
29
+ *
30
+ * Uses DEFAULT_AUTH_TIER unless overridden via config.
31
+ * Override in your src/index.ts:
32
+ * ```ts
33
+ * import { createRateLimiter } from 'vono/server'
34
+ * const authRateLimiter = createRateLimiter(config.rateLimit?.auth ?? DEFAULT_AUTH_TIER)
35
+ * ```
36
+ */
37
+ export declare const authRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
38
+ /**
39
+ * otpRateLimiter — strict limiter for OTP / password-reset endpoints.
40
+ */
41
+ export declare const otpRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
42
+ /**
43
+ * apiRateLimiter — general-purpose limiter for public API endpoints.
44
+ */
45
+ export declare const apiRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
46
+ /**
47
+ * createConfiguredRateLimiters — build rate limiters from VonoConfig.
48
+ *
49
+ * Call this in your src/index.ts after loading vono.config.ts to get
50
+ * limiters that respect your project's custom tier settings.
51
+ *
52
+ * Usage:
53
+ * ```ts
54
+ * import { createConfiguredRateLimiters } from 'vono/server'
55
+ * import config from '../vono.config.js'
56
+ *
57
+ * const { authRateLimiter, otpRateLimiter, apiRateLimiter } =
58
+ * createConfiguredRateLimiters(config.rateLimit)
59
+ *
60
+ * authRoutes.use('/login', authRateLimiter)
61
+ * authRoutes.use('/otp/verify', otpRateLimiter)
62
+ * api.use('*', apiRateLimiter)
63
+ * ```
64
+ */
65
+ export declare function createConfiguredRateLimiters(rateLimitConfig?: {
66
+ auth?: RateLimitTier;
67
+ otp?: RateLimitTier;
68
+ api?: RateLimitTier;
69
+ }): {
70
+ authRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
71
+ otpRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
72
+ apiRateLimiter: import("hono").MiddlewareHandler<any, string, {}>;
73
+ };
74
+ //# sourceMappingURL=rateLimiter.d.ts.map