@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,132 @@
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
+ // ─── generateOpenApiSpec ─────────────────────────────────────────────
11
+ /**
12
+ * generateOpenApiSpec — returns a complete OpenAPI 3.1 spec object.
13
+ *
14
+ * Includes:
15
+ * - info, servers
16
+ * - tags: Health, Auth
17
+ * - components.securitySchemes: bearerAuth
18
+ * - components.schemas: SuccessResponse, ErrorResponse, PaginationMeta
19
+ *
20
+ * @example
21
+ * // src/openapi.ts
22
+ * export default generateOpenApiSpec('MyApp', '1.0.0', 'https://api.example.com')
23
+ */
24
+ export function generateOpenApiSpec(appName, appVersion, serverUrl) {
25
+ return {
26
+ openapi: '3.1.0',
27
+ info: {
28
+ title: appName,
29
+ version: appVersion,
30
+ description: `${appName} REST API — powered by Vono`,
31
+ },
32
+ servers: [
33
+ {
34
+ url: serverUrl,
35
+ description: 'Primary server',
36
+ },
37
+ ],
38
+ tags: [
39
+ {
40
+ name: 'Health',
41
+ description: 'Health check endpoints',
42
+ },
43
+ {
44
+ name: 'Auth',
45
+ description: 'Authentication and authorization endpoints',
46
+ },
47
+ ],
48
+ components: {
49
+ securitySchemes: {
50
+ bearerAuth: {
51
+ type: 'http',
52
+ scheme: 'bearer',
53
+ bearerFormat: 'JWT',
54
+ description: 'JWT access token. Obtain via POST /api/v1/auth/login',
55
+ },
56
+ },
57
+ schemas: {
58
+ SuccessResponse: {
59
+ type: 'object',
60
+ required: ['success', 'message'],
61
+ properties: {
62
+ success: {
63
+ type: 'boolean',
64
+ example: true,
65
+ },
66
+ message: {
67
+ type: 'string',
68
+ example: 'Operation successful',
69
+ },
70
+ data: {
71
+ description: 'Response payload — shape varies by endpoint',
72
+ },
73
+ },
74
+ },
75
+ ErrorResponse: {
76
+ type: 'object',
77
+ required: ['success', 'message'],
78
+ properties: {
79
+ success: {
80
+ type: 'boolean',
81
+ example: false,
82
+ },
83
+ message: {
84
+ type: 'string',
85
+ example: 'Something went wrong',
86
+ },
87
+ errors: {
88
+ type: 'object',
89
+ additionalProperties: {
90
+ type: 'string',
91
+ },
92
+ description: 'Field-level validation errors (422 responses)',
93
+ example: { email: 'Invalid email address' },
94
+ },
95
+ },
96
+ },
97
+ PaginationMeta: {
98
+ type: 'object',
99
+ required: ['total', 'currentPage', 'totalPages', 'limit'],
100
+ properties: {
101
+ total: {
102
+ type: 'integer',
103
+ example: 100,
104
+ },
105
+ currentPage: {
106
+ type: 'integer',
107
+ example: 1,
108
+ },
109
+ totalPages: {
110
+ type: 'integer',
111
+ example: 10,
112
+ },
113
+ limit: {
114
+ type: 'integer',
115
+ example: 10,
116
+ },
117
+ nextPage: {
118
+ type: ['integer', 'null'],
119
+ example: 2,
120
+ },
121
+ prevPage: {
122
+ type: ['integer', 'null'],
123
+ example: null,
124
+ },
125
+ },
126
+ },
127
+ },
128
+ },
129
+ paths: {},
130
+ };
131
+ }
132
+ //# sourceMappingURL=spec-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-template.js","sourceRoot":"","sources":["../../../src/server/openapi/spec-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,wEAAwE;AAExE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,UAAkB,EAClB,SAAiB;IAEjB,OAAO;QACL,OAAO,EAAE,OAAO;QAEhB,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,GAAG,OAAO,6BAA6B;SACrD;QAED,OAAO,EAAE;YACP;gBACE,GAAG,EAAE,SAAS;gBACd,WAAW,EAAE,gBAAgB;aAC9B;SACF;QAED,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,4CAA4C;aAC1D;SACF;QAED,UAAU,EAAE;YACV,eAAe,EAAE;gBACf,UAAU,EAAE;oBACV,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,KAAK;oBACnB,WAAW,EAAE,sDAAsD;iBACpE;aACF;YAED,OAAO,EAAE;gBACP,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBAChC,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,IAAI;yBACd;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,sBAAsB;yBAChC;wBACD,IAAI,EAAE;4BACJ,WAAW,EAAE,6CAA6C;yBAC3D;qBACF;iBACF;gBAED,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBAChC,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;yBACf;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,sBAAsB;yBAChC;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,oBAAoB,EAAE;gCACpB,IAAI,EAAE,QAAQ;6BACf;4BACD,WAAW,EAAE,+CAA+C;4BAC5D,OAAO,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;yBAC5C;qBACF;iBACF;gBAED,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC;oBACzD,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,GAAG;yBACb;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,CAAC;yBACX;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,EAAE;yBACZ;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,EAAE;yBACZ;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;4BACzB,OAAO,EAAE,CAAC;yBACX;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;4BACzB,OAAO,EAAE,IAAI;yBACd;qBACF;iBACF;aACF;SACF;QAED,KAAK,EAAE,EAAE;KACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,62 @@
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 { RouteRule, RouteRules } from './route-rules.js';
11
+ export interface RenderResult {
12
+ html: string;
13
+ head: string;
14
+ bodyAttrs: string;
15
+ htmlAttrs: string;
16
+ piniaState: string;
17
+ rule: RouteRule;
18
+ }
19
+ /** Static 500 fallback — served when both SSR and error page rendering fail */
20
+ declare const STATIC_500 = "<!DOCTYPE html>\n<html lang=\"en\">\n<head><meta charset=\"UTF-8\"/><title>500 \u2014 Server Error</title></head>\n<body><h1>500 \u2014 Internal Server Error</h1><p>Something went wrong. Please try again later.</p></body>\n</html>";
21
+ /**
22
+ * Render a URL using SSR or return a bare SPA shell.
23
+ *
24
+ * This function is called by the Hono server for every page request.
25
+ * It delegates to the project's createApp factory (src/main.ts).
26
+ *
27
+ * @param url - The request URL path
28
+ * @param routeRules - The project's route rules config
29
+ * @param createApp - The project's createApp factory
30
+ * @param templateHtml - The index.html template string
31
+ * @param fallbackToSpa - Whether to fall back to SPA on SSR error
32
+ */
33
+ export declare function render(url: string, routeRules: RouteRules, createApp: (opts: {
34
+ isServer: boolean;
35
+ url: string;
36
+ }) => {
37
+ app: unknown;
38
+ router: {
39
+ push: (url: string) => Promise<void>;
40
+ isReady: () => Promise<void>;
41
+ };
42
+ pinia: {
43
+ state: {
44
+ value: Record<string, unknown>;
45
+ };
46
+ };
47
+ head: unknown;
48
+ }, fallbackToSpa?: boolean): Promise<RenderResult>;
49
+ /**
50
+ * Build the final HTML string from the template and render result.
51
+ * Injects SSR content, head tags, Pinia state, and cache headers.
52
+ */
53
+ export declare function buildHtml(template: string, result: RenderResult): string;
54
+ /**
55
+ * Serialize Pinia state into a script tag with XSS escaping.
56
+ * Escapes < and > to prevent </script> injection attacks.
57
+ *
58
+ * Property 11: Pinia state SSR round-trip
59
+ */
60
+ export declare function injectPiniaState(piniaState: string): string;
61
+ export { STATIC_500 };
62
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/server/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAI7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,+EAA+E;AAC/E,QAAA,MAAM,UAAU,2OAIR,CAAA;AAER;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK;IACvD,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAA;IAC9E,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;IACpD,IAAI,EAAE,OAAO,CAAA;CACd,EACD,aAAa,UAAQ,GACpB,OAAO,CAAC,YAAY,CAAC,CA4CvB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAsBxE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK3D;AAcD,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,115 @@
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 { resolveRouteRule } from './route-rules.js';
11
+ import { Logger } from '../shared/utils/logger.js';
12
+ /** Static 500 fallback — served when both SSR and error page rendering fail */
13
+ const STATIC_500 = `<!DOCTYPE html>
14
+ <html lang="en">
15
+ <head><meta charset="UTF-8"/><title>500 — Server Error</title></head>
16
+ <body><h1>500 — Internal Server Error</h1><p>Something went wrong. Please try again later.</p></body>
17
+ </html>`;
18
+ /**
19
+ * Render a URL using SSR or return a bare SPA shell.
20
+ *
21
+ * This function is called by the Hono server for every page request.
22
+ * It delegates to the project's createApp factory (src/main.ts).
23
+ *
24
+ * @param url - The request URL path
25
+ * @param routeRules - The project's route rules config
26
+ * @param createApp - The project's createApp factory
27
+ * @param templateHtml - The index.html template string
28
+ * @param fallbackToSpa - Whether to fall back to SPA on SSR error
29
+ */
30
+ export async function render(url, routeRules, createApp, fallbackToSpa = false) {
31
+ const rule = resolveRouteRule(url, routeRules);
32
+ // ── SPA mode: return empty shell ──────────────────────────────────
33
+ if (rule.mode === 'spa') {
34
+ return buildSpaResult(rule);
35
+ }
36
+ // ── SSR mode: full server render ──────────────────────────────────
37
+ try {
38
+ const { renderToString } = await import('vue/server-renderer');
39
+ const { renderSSRHead } = await import('@unhead/ssr');
40
+ const { app, router, pinia, head } = createApp({ isServer: true, url });
41
+ await router.push(url);
42
+ await router.isReady();
43
+ const ctx = {};
44
+ const html = await renderToString(app, ctx);
45
+ const headPayload = await renderSSRHead(head);
46
+ // Serialize Pinia state — XSS-safe escaping handled in injectPiniaState
47
+ const piniaState = JSON.stringify(pinia.state.value);
48
+ return {
49
+ html,
50
+ head: headPayload.headTags,
51
+ bodyAttrs: headPayload.bodyAttrs ?? '',
52
+ htmlAttrs: headPayload.htmlAttrs ?? '',
53
+ piniaState,
54
+ rule,
55
+ };
56
+ }
57
+ catch (err) {
58
+ Logger.error('[vono] SSR render error', { url, error: String(err) });
59
+ if (fallbackToSpa) {
60
+ Logger.warn('[vono] Falling back to SPA shell due to SSR error', { url });
61
+ return buildSpaResult(rule);
62
+ }
63
+ throw err;
64
+ }
65
+ }
66
+ /**
67
+ * Build the final HTML string from the template and render result.
68
+ * Injects SSR content, head tags, Pinia state, and cache headers.
69
+ */
70
+ export function buildHtml(template, result) {
71
+ let html = template
72
+ .replace('<!--ssr-outlet-->', result.html)
73
+ .replace('<!--head-outlet-->', result.head);
74
+ // Inject Pinia state for client hydration (SSR only, non-empty state)
75
+ if (result.rule.mode === 'ssr' && result.piniaState && result.piniaState !== '{}') {
76
+ const stateScript = injectPiniaState(result.piniaState);
77
+ html = html.replace('<!--state-outlet-->', stateScript);
78
+ }
79
+ else {
80
+ html = html.replace('<!--state-outlet-->', '');
81
+ }
82
+ // Apply htmlAttrs and bodyAttrs
83
+ if (result.htmlAttrs) {
84
+ html = html.replace('<html lang="en">', `<html lang="en" ${result.htmlAttrs}>`);
85
+ }
86
+ if (result.bodyAttrs) {
87
+ html = html.replace('<body>', `<body ${result.bodyAttrs}>`);
88
+ }
89
+ return html;
90
+ }
91
+ /**
92
+ * Serialize Pinia state into a script tag with XSS escaping.
93
+ * Escapes < and > to prevent </script> injection attacks.
94
+ *
95
+ * Property 11: Pinia state SSR round-trip
96
+ */
97
+ export function injectPiniaState(piniaState) {
98
+ const escaped = piniaState
99
+ .replace(/</g, '\\u003c')
100
+ .replace(/>/g, '\\u003e');
101
+ return `<script id="__pinia" type="application/json">${escaped}</script>`;
102
+ }
103
+ /** Build a bare SPA shell result */
104
+ function buildSpaResult(rule) {
105
+ return {
106
+ html: '',
107
+ head: '<title>App</title>',
108
+ bodyAttrs: '',
109
+ htmlAttrs: '',
110
+ piniaState: '',
111
+ rule,
112
+ };
113
+ }
114
+ export { STATIC_500 };
115
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/server/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
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 type CacheDriver = 'kv' | 'upstash';
11
+ /**
12
+ * resolveCacheDriver — returns the appropriate cache driver.
13
+ *
14
+ * | Runtime | Driver |
15
+ * |----------------------------|---------|
16
+ * | cloudflare-workers / pages | kv |
17
+ * | everything else | upstash |
18
+ *
19
+ * @param runtime — detected runtime string
20
+ */
21
+ export declare function resolveCacheDriver(runtime: string): CacheDriver;
22
+ //# sourceMappingURL=cache-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-driver.d.ts","sourceRoot":"","sources":["../../../src/server/resolvers/cache-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;AAE1C;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAS/D"}
@@ -0,0 +1,29 @@
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
+ /**
11
+ * resolveCacheDriver — returns the appropriate cache driver.
12
+ *
13
+ * | Runtime | Driver |
14
+ * |----------------------------|---------|
15
+ * | cloudflare-workers / pages | kv |
16
+ * | everything else | upstash |
17
+ *
18
+ * @param runtime — detected runtime string
19
+ */
20
+ export function resolveCacheDriver(runtime) {
21
+ switch (runtime) {
22
+ case 'cloudflare-workers':
23
+ case 'cloudflare-pages':
24
+ return 'kv';
25
+ default:
26
+ return 'upstash';
27
+ }
28
+ }
29
+ //# sourceMappingURL=cache-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-driver.js","sourceRoot":"","sources":["../../../src/server/resolvers/cache-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAA;QAEb;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
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 { resolveQueueDriver } from './queue-driver.js';
11
+ export { resolveStorageDriver } from './storage-driver.js';
12
+ export { resolveCacheDriver } from './cache-driver.js';
13
+ export { validateDriverCompatibility } from './validate-compatibility.js';
14
+ export type { QueueDriver } from './queue-driver.js';
15
+ export type { StorageDriver } from './storage-driver.js';
16
+ export type { CacheDriver } from './cache-driver.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACzE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,14 @@
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 { resolveQueueDriver } from './queue-driver.js';
11
+ export { resolveStorageDriver } from './storage-driver.js';
12
+ export { resolveCacheDriver } from './cache-driver.js';
13
+ export { validateDriverCompatibility } from './validate-compatibility.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,25 @@
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 type QueueDriver = 'bullmq' | 'cloudflare-queues' | 'sqs' | 'upstash';
11
+ /**
12
+ * resolveQueueDriver — returns the appropriate queue driver for the runtime.
13
+ *
14
+ * | Runtime | Driver |
15
+ * |----------------------------------|--------------------|
16
+ * | bun / node | bullmq |
17
+ * | cloudflare-workers / pages | cloudflare-queues |
18
+ * | aws-lambda | sqs |
19
+ * | vercel / netlify / deno / fastly | upstash |
20
+ *
21
+ * @param runtime — detected runtime string
22
+ * @param explicit — optional override from vono.config.ts
23
+ */
24
+ export declare function resolveQueueDriver(runtime: string, explicit?: string): QueueDriver;
25
+ //# sourceMappingURL=queue-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-driver.d.ts","sourceRoot":"","sources":["../../../src/server/resolvers/queue-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAA;AAE5E;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAwBlF"}
@@ -0,0 +1,44 @@
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
+ /**
11
+ * resolveQueueDriver — returns the appropriate queue driver for the runtime.
12
+ *
13
+ * | Runtime | Driver |
14
+ * |----------------------------------|--------------------|
15
+ * | bun / node | bullmq |
16
+ * | cloudflare-workers / pages | cloudflare-queues |
17
+ * | aws-lambda | sqs |
18
+ * | vercel / netlify / deno / fastly | upstash |
19
+ *
20
+ * @param runtime — detected runtime string
21
+ * @param explicit — optional override from vono.config.ts
22
+ */
23
+ export function resolveQueueDriver(runtime, explicit) {
24
+ if (explicit)
25
+ return explicit;
26
+ switch (runtime) {
27
+ case 'bun':
28
+ case 'node':
29
+ return 'bullmq';
30
+ case 'cloudflare-workers':
31
+ case 'cloudflare-pages':
32
+ return 'cloudflare-queues';
33
+ case 'aws-lambda':
34
+ return 'sqs';
35
+ case 'vercel':
36
+ case 'netlify':
37
+ case 'deno':
38
+ case 'fastly':
39
+ return 'upstash';
40
+ default:
41
+ return 'bullmq';
42
+ }
43
+ }
44
+ //# sourceMappingURL=queue-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-driver.js","sourceRoot":"","sources":["../../../src/server/resolvers/queue-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAiB;IACnE,IAAI,QAAQ;QAAE,OAAO,QAAuB,CAAA;IAE5C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM;YACT,OAAO,QAAQ,CAAA;QAEjB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB;YACrB,OAAO,mBAAmB,CAAA;QAE5B,KAAK,YAAY;YACf,OAAO,KAAK,CAAA;QAEd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,SAAS,CAAA;QAElB;YACE,OAAO,QAAQ,CAAA;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
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 type StorageDriver = 'r2' | 's3' | 'local';
11
+ /**
12
+ * resolveStorageDriver — returns the appropriate storage driver.
13
+ *
14
+ * | Runtime | Condition | Driver |
15
+ * |----------------------------|------------------------|--------|
16
+ * | cloudflare-workers / pages | — | r2 |
17
+ * | bun / node | AWS creds present | s3 |
18
+ * | bun / node | no AWS creds | local |
19
+ *
20
+ * @param runtime — detected runtime string
21
+ * @param env — environment variables map
22
+ */
23
+ export declare function resolveStorageDriver(runtime: string, env: Record<string, string>): StorageDriver;
24
+ //# sourceMappingURL=storage-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-driver.d.ts","sourceRoot":"","sources":["../../../src/server/resolvers/storage-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAA;AAEjD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,aAAa,CAkBf"}
@@ -0,0 +1,38 @@
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
+ /**
11
+ * resolveStorageDriver — returns the appropriate storage driver.
12
+ *
13
+ * | Runtime | Condition | Driver |
14
+ * |----------------------------|------------------------|--------|
15
+ * | cloudflare-workers / pages | — | r2 |
16
+ * | bun / node | AWS creds present | s3 |
17
+ * | bun / node | no AWS creds | local |
18
+ *
19
+ * @param runtime — detected runtime string
20
+ * @param env — environment variables map
21
+ */
22
+ export function resolveStorageDriver(runtime, env) {
23
+ switch (runtime) {
24
+ case 'cloudflare-workers':
25
+ case 'cloudflare-pages':
26
+ return 'r2';
27
+ case 'bun':
28
+ case 'node': {
29
+ const hasAwsCreds = Boolean(env['S3_BUCKET']) &&
30
+ Boolean(env['S3_ACCESS_KEY']) &&
31
+ Boolean(env['S3_SECRET_KEY']);
32
+ return hasAwsCreds ? 's3' : 'local';
33
+ }
34
+ default:
35
+ return 'local';
36
+ }
37
+ }
38
+ //# sourceMappingURL=storage-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-driver.js","sourceRoot":"","sources":["../../../src/server/resolvers/storage-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,GAA2B;IAE3B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAA;QAEb,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;YAC/B,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QACrC,CAAC;QAED;YACE,OAAO,OAAO,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
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 { QueueDriver } from './queue-driver.js';
11
+ import type { StorageDriver } from './storage-driver.js';
12
+ import type { CacheDriver } from './cache-driver.js';
13
+ /**
14
+ * validateDriverCompatibility — throws a descriptive error for
15
+ * incompatible driver/runtime combinations.
16
+ *
17
+ * Call this at startup before accepting requests.
18
+ *
19
+ * @throws Error with a human-readable message listing all conflicts
20
+ */
21
+ export declare function validateDriverCompatibility(runtime: string, queueDriver: QueueDriver, storageDriver: StorageDriver, cacheDriver: CacheDriver): void;
22
+ //# sourceMappingURL=validate-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-compatibility.d.ts","sourceRoot":"","sources":["../../../src/server/resolvers/validate-compatibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAgEpD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,GACvB,IAAI,CA2BN"}