@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.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/client/composables/navigateTo.d.ts +37 -0
- package/dist/client/composables/navigateTo.d.ts.map +1 -0
- package/dist/client/composables/navigateTo.js +56 -0
- package/dist/client/composables/navigateTo.js.map +1 -0
- package/dist/client/composables/useAsyncData.d.ts +35 -0
- package/dist/client/composables/useAsyncData.d.ts.map +1 -0
- package/dist/client/composables/useAsyncData.js +55 -0
- package/dist/client/composables/useAsyncData.js.map +1 -0
- package/dist/client/composables/useCookie.d.ts +33 -0
- package/dist/client/composables/useCookie.d.ts.map +1 -0
- package/dist/client/composables/useCookie.js +61 -0
- package/dist/client/composables/useCookie.js.map +1 -0
- package/dist/client/composables/useFormErrors.d.ts +34 -0
- package/dist/client/composables/useFormErrors.d.ts.map +1 -0
- package/dist/client/composables/useFormErrors.js +59 -0
- package/dist/client/composables/useFormErrors.js.map +1 -0
- package/dist/client/composables/useRouteRules.d.ts +26 -0
- package/dist/client/composables/useRouteRules.d.ts.map +1 -0
- package/dist/client/composables/useRouteRules.js +44 -0
- package/dist/client/composables/useRouteRules.js.map +1 -0
- package/dist/client/composables/useSeo.d.ts +35 -0
- package/dist/client/composables/useSeo.d.ts.map +1 -0
- package/dist/client/composables/useSeo.js +62 -0
- package/dist/client/composables/useSeo.js.map +1 -0
- package/dist/client/composables/useState.d.ts +35 -0
- package/dist/client/composables/useState.d.ts.map +1 -0
- package/dist/client/composables/useState.js +73 -0
- package/dist/client/composables/useState.js.map +1 -0
- package/dist/client/composables/useVonoFetch.d.ts +24 -0
- package/dist/client/composables/useVonoFetch.d.ts.map +1 -0
- package/dist/client/composables/useVonoFetch.js +49 -0
- package/dist/client/composables/useVonoFetch.js.map +1 -0
- package/dist/client/index.d.ts +19 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +20 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/layouts/index.d.ts +12 -0
- package/dist/client/layouts/index.d.ts.map +1 -0
- package/dist/client/layouts/index.js +11 -0
- package/dist/client/layouts/index.js.map +1 -0
- package/dist/client/layouts/resolve-layout.d.ts +23 -0
- package/dist/client/layouts/resolve-layout.d.ts.map +1 -0
- package/dist/client/layouts/resolve-layout.js +31 -0
- package/dist/client/layouts/resolve-layout.js.map +1 -0
- package/dist/client/nuxt-ui/index.d.ts +11 -0
- package/dist/client/nuxt-ui/index.d.ts.map +1 -0
- package/dist/client/nuxt-ui/index.js +11 -0
- package/dist/client/nuxt-ui/index.js.map +1 -0
- package/dist/client/nuxt-ui/setup.d.ts +27 -0
- package/dist/client/nuxt-ui/setup.d.ts.map +1 -0
- package/dist/client/nuxt-ui/setup.js +40 -0
- package/dist/client/nuxt-ui/setup.js.map +1 -0
- package/dist/client/pinia-hydration.d.ts +35 -0
- package/dist/client/pinia-hydration.d.ts.map +1 -0
- package/dist/client/pinia-hydration.js +48 -0
- package/dist/client/pinia-hydration.js.map +1 -0
- package/dist/config/define-config.d.ts +25 -0
- package/dist/config/define-config.d.ts.map +1 -0
- package/dist/config/define-config.js +63 -0
- package/dist/config/define-config.js.map +1 -0
- package/dist/config/env-helpers.d.ts +30 -0
- package/dist/config/env-helpers.d.ts.map +1 -0
- package/dist/config/env-helpers.js +50 -0
- package/dist/config/env-helpers.js.map +1 -0
- package/dist/config/use-config.d.ts +31 -0
- package/dist/config/use-config.d.ts.map +1 -0
- package/dist/config/use-config.js +49 -0
- package/dist/config/use-config.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/module-system/define-module.d.ts +82 -0
- package/dist/module-system/define-module.d.ts.map +1 -0
- package/dist/module-system/define-module.js +37 -0
- package/dist/module-system/define-module.js.map +1 -0
- package/dist/module-system/index.d.ts +14 -0
- package/dist/module-system/index.d.ts.map +1 -0
- package/dist/module-system/index.js +13 -0
- package/dist/module-system/index.js.map +1 -0
- package/dist/module-system/module-registry.d.ts +37 -0
- package/dist/module-system/module-registry.d.ts.map +1 -0
- package/dist/module-system/module-registry.js +68 -0
- package/dist/module-system/module-registry.js.map +1 -0
- package/dist/module-system/vite-integration.d.ts +23 -0
- package/dist/module-system/vite-integration.d.ts.map +1 -0
- package/dist/module-system/vite-integration.js +67 -0
- package/dist/module-system/vite-integration.js.map +1 -0
- package/dist/server/app-template.d.ts +47 -0
- package/dist/server/app-template.d.ts.map +1 -0
- package/dist/server/app-template.js +224 -0
- package/dist/server/app-template.js.map +1 -0
- package/dist/server/auth/gates.d.ts +79 -0
- package/dist/server/auth/gates.d.ts.map +1 -0
- package/dist/server/auth/gates.js +125 -0
- package/dist/server/auth/gates.js.map +1 -0
- package/dist/server/auth/index.d.ts +12 -0
- package/dist/server/auth/index.d.ts.map +1 -0
- package/dist/server/auth/index.js +12 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/dto/query.dto.d.ts +44 -0
- package/dist/server/dto/query.dto.d.ts.map +1 -0
- package/dist/server/dto/query.dto.js +86 -0
- package/dist/server/dto/query.dto.js.map +1 -0
- package/dist/server/email/define-email.d.ts +41 -0
- package/dist/server/email/define-email.d.ts.map +1 -0
- package/dist/server/email/define-email.js +50 -0
- package/dist/server/email/define-email.js.map +1 -0
- package/dist/server/email/drivers/console.d.ts +16 -0
- package/dist/server/email/drivers/console.d.ts.map +1 -0
- package/dist/server/email/drivers/console.js +22 -0
- package/dist/server/email/drivers/console.js.map +1 -0
- package/dist/server/email/drivers/postmark.d.ts +19 -0
- package/dist/server/email/drivers/postmark.d.ts.map +1 -0
- package/dist/server/email/drivers/postmark.js +39 -0
- package/dist/server/email/drivers/postmark.js.map +1 -0
- package/dist/server/email/drivers/resend.d.ts +19 -0
- package/dist/server/email/drivers/resend.d.ts.map +1 -0
- package/dist/server/email/drivers/resend.js +37 -0
- package/dist/server/email/drivers/resend.js.map +1 -0
- package/dist/server/email/drivers/smtp.d.ts +26 -0
- package/dist/server/email/drivers/smtp.d.ts.map +1 -0
- package/dist/server/email/drivers/smtp.js +37 -0
- package/dist/server/email/drivers/smtp.js.map +1 -0
- package/dist/server/email/send-email.d.ts +42 -0
- package/dist/server/email/send-email.d.ts.map +1 -0
- package/dist/server/email/send-email.js +69 -0
- package/dist/server/email/send-email.js.map +1 -0
- package/dist/server/env-validation/define-env.d.ts +45 -0
- package/dist/server/env-validation/define-env.d.ts.map +1 -0
- package/dist/server/env-validation/define-env.js +41 -0
- package/dist/server/env-validation/define-env.js.map +1 -0
- package/dist/server/env-validation/index.d.ts +13 -0
- package/dist/server/env-validation/index.d.ts.map +1 -0
- package/dist/server/env-validation/index.js +12 -0
- package/dist/server/env-validation/index.js.map +1 -0
- package/dist/server/env-validation/validate-at-startup.d.ts +29 -0
- package/dist/server/env-validation/validate-at-startup.d.ts.map +1 -0
- package/dist/server/env-validation/validate-at-startup.js +61 -0
- package/dist/server/env-validation/validate-at-startup.js.map +1 -0
- package/dist/server/i18n/composables/useI18n.d.ts +39 -0
- package/dist/server/i18n/composables/useI18n.d.ts.map +1 -0
- package/dist/server/i18n/composables/useI18n.js +93 -0
- package/dist/server/i18n/composables/useI18n.js.map +1 -0
- package/dist/server/i18n/detect-locale.d.ts +22 -0
- package/dist/server/i18n/detect-locale.d.ts.map +1 -0
- package/dist/server/i18n/detect-locale.js +42 -0
- package/dist/server/i18n/detect-locale.js.map +1 -0
- package/dist/server/i18n/index.d.ts +14 -0
- package/dist/server/i18n/index.d.ts.map +1 -0
- package/dist/server/i18n/index.js +13 -0
- package/dist/server/i18n/index.js.map +1 -0
- package/dist/server/i18n/translate.d.ts +38 -0
- package/dist/server/i18n/translate.d.ts.map +1 -0
- package/dist/server/i18n/translate.js +83 -0
- package/dist/server/i18n/translate.js.map +1 -0
- package/dist/server/index.d.ts +40 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +36 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/jobs/define-job.d.ts +50 -0
- package/dist/server/jobs/define-job.d.ts.map +1 -0
- package/dist/server/jobs/define-job.js +32 -0
- package/dist/server/jobs/define-job.js.map +1 -0
- package/dist/server/jobs/index.d.ts +13 -0
- package/dist/server/jobs/index.d.ts.map +1 -0
- package/dist/server/jobs/index.js +12 -0
- package/dist/server/jobs/index.js.map +1 -0
- package/dist/server/jobs/runner.d.ts +37 -0
- package/dist/server/jobs/runner.d.ts.map +1 -0
- package/dist/server/jobs/runner.js +75 -0
- package/dist/server/jobs/runner.js.map +1 -0
- package/dist/server/middleware/configProvider.d.ts +26 -0
- package/dist/server/middleware/configProvider.d.ts.map +1 -0
- package/dist/server/middleware/configProvider.js +78 -0
- package/dist/server/middleware/configProvider.js.map +1 -0
- package/dist/server/middleware/dbProvider.d.ts +27 -0
- package/dist/server/middleware/dbProvider.d.ts.map +1 -0
- package/dist/server/middleware/dbProvider.js +66 -0
- package/dist/server/middleware/dbProvider.js.map +1 -0
- package/dist/server/middleware/rateLimiter.d.ts +74 -0
- package/dist/server/middleware/rateLimiter.d.ts.map +1 -0
- package/dist/server/middleware/rateLimiter.js +164 -0
- package/dist/server/middleware/rateLimiter.js.map +1 -0
- package/dist/server/middleware/validator.d.ts +57 -0
- package/dist/server/middleware/validator.d.ts.map +1 -0
- package/dist/server/middleware/validator.js +128 -0
- package/dist/server/middleware/validator.js.map +1 -0
- package/dist/server/openapi/append-tag.d.ts +21 -0
- package/dist/server/openapi/append-tag.d.ts.map +1 -0
- package/dist/server/openapi/append-tag.js +54 -0
- package/dist/server/openapi/append-tag.js.map +1 -0
- package/dist/server/openapi/index.d.ts +13 -0
- package/dist/server/openapi/index.d.ts.map +1 -0
- package/dist/server/openapi/index.js +12 -0
- package/dist/server/openapi/index.js.map +1 -0
- package/dist/server/openapi/spec-template.d.ts +45 -0
- package/dist/server/openapi/spec-template.d.ts.map +1 -0
- package/dist/server/openapi/spec-template.js +132 -0
- package/dist/server/openapi/spec-template.js.map +1 -0
- package/dist/server/renderer.d.ts +62 -0
- package/dist/server/renderer.d.ts.map +1 -0
- package/dist/server/renderer.js +115 -0
- package/dist/server/renderer.js.map +1 -0
- package/dist/server/resolvers/cache-driver.d.ts +22 -0
- package/dist/server/resolvers/cache-driver.d.ts.map +1 -0
- package/dist/server/resolvers/cache-driver.js +29 -0
- package/dist/server/resolvers/cache-driver.js.map +1 -0
- package/dist/server/resolvers/index.d.ts +17 -0
- package/dist/server/resolvers/index.d.ts.map +1 -0
- package/dist/server/resolvers/index.js +14 -0
- package/dist/server/resolvers/index.js.map +1 -0
- package/dist/server/resolvers/queue-driver.d.ts +25 -0
- package/dist/server/resolvers/queue-driver.d.ts.map +1 -0
- package/dist/server/resolvers/queue-driver.js +44 -0
- package/dist/server/resolvers/queue-driver.js.map +1 -0
- package/dist/server/resolvers/storage-driver.d.ts +24 -0
- package/dist/server/resolvers/storage-driver.d.ts.map +1 -0
- package/dist/server/resolvers/storage-driver.js +38 -0
- package/dist/server/resolvers/storage-driver.js.map +1 -0
- package/dist/server/resolvers/validate-compatibility.d.ts +22 -0
- package/dist/server/resolvers/validate-compatibility.d.ts.map +1 -0
- package/dist/server/resolvers/validate-compatibility.js +83 -0
- package/dist/server/resolvers/validate-compatibility.js.map +1 -0
- package/dist/server/resources/base-resource.d.ts +57 -0
- package/dist/server/resources/base-resource.d.ts.map +1 -0
- package/dist/server/resources/base-resource.js +74 -0
- package/dist/server/resources/base-resource.js.map +1 -0
- package/dist/server/route-rules.d.ts +45 -0
- package/dist/server/route-rules.d.ts.map +1 -0
- package/dist/server/route-rules.js +66 -0
- package/dist/server/route-rules.js.map +1 -0
- package/dist/server/seo.d.ts +58 -0
- package/dist/server/seo.d.ts.map +1 -0
- package/dist/server/seo.js +85 -0
- package/dist/server/seo.js.map +1 -0
- package/dist/server/storage/drivers/bunny.d.ts +33 -0
- package/dist/server/storage/drivers/bunny.d.ts.map +1 -0
- package/dist/server/storage/drivers/bunny.js +70 -0
- package/dist/server/storage/drivers/bunny.js.map +1 -0
- package/dist/server/storage/drivers/cloudinary.d.ts +30 -0
- package/dist/server/storage/drivers/cloudinary.d.ts.map +1 -0
- package/dist/server/storage/drivers/cloudinary.js +86 -0
- package/dist/server/storage/drivers/cloudinary.js.map +1 -0
- package/dist/server/storage/drivers/local.d.ts +28 -0
- package/dist/server/storage/drivers/local.d.ts.map +1 -0
- package/dist/server/storage/drivers/local.js +57 -0
- package/dist/server/storage/drivers/local.js.map +1 -0
- package/dist/server/storage/drivers/r2.d.ts +32 -0
- package/dist/server/storage/drivers/r2.d.ts.map +1 -0
- package/dist/server/storage/drivers/r2.js +70 -0
- package/dist/server/storage/drivers/r2.js.map +1 -0
- package/dist/server/storage/drivers/s3.d.ts +29 -0
- package/dist/server/storage/drivers/s3.d.ts.map +1 -0
- package/dist/server/storage/drivers/s3.js +68 -0
- package/dist/server/storage/drivers/s3.js.map +1 -0
- package/dist/server/storage/index.d.ts +17 -0
- package/dist/server/storage/index.d.ts.map +1 -0
- package/dist/server/storage/index.js +16 -0
- package/dist/server/storage/index.js.map +1 -0
- package/dist/server/storage/types.d.ts +70 -0
- package/dist/server/storage/types.d.ts.map +1 -0
- package/dist/server/storage/types.js +11 -0
- package/dist/server/storage/types.js.map +1 -0
- package/dist/server/storage/use-storage.d.ts +54 -0
- package/dist/server/storage/use-storage.d.ts.map +1 -0
- package/dist/server/storage/use-storage.js +150 -0
- package/dist/server/storage/use-storage.js.map +1 -0
- package/dist/server/stream-renderer.d.ts +49 -0
- package/dist/server/stream-renderer.d.ts.map +1 -0
- package/dist/server/stream-renderer.js +89 -0
- package/dist/server/stream-renderer.js.map +1 -0
- package/dist/server/templates/health.routes.d.ts +22 -0
- package/dist/server/templates/health.routes.d.ts.map +1 -0
- package/dist/server/templates/health.routes.js +28 -0
- package/dist/server/templates/health.routes.js.map +1 -0
- package/dist/server/utils/storage-url.d.ts +36 -0
- package/dist/server/utils/storage-url.d.ts.map +1 -0
- package/dist/server/utils/storage-url.js +53 -0
- package/dist/server/utils/storage-url.js.map +1 -0
- package/dist/shared/utils/autoRoutes.d.ts +22 -0
- package/dist/shared/utils/autoRoutes.d.ts.map +1 -0
- package/dist/shared/utils/autoRoutes.js +29 -0
- package/dist/shared/utils/autoRoutes.js.map +1 -0
- package/dist/shared/utils/id.d.ts +25 -0
- package/dist/shared/utils/id.d.ts.map +1 -0
- package/dist/shared/utils/id.js +29 -0
- package/dist/shared/utils/id.js.map +1 -0
- package/dist/shared/utils/logger.d.ts +33 -0
- package/dist/shared/utils/logger.d.ts.map +1 -0
- package/dist/shared/utils/logger.js +65 -0
- package/dist/shared/utils/logger.js.map +1 -0
- package/dist/shared/utils/mappers.d.ts +23 -0
- package/dist/shared/utils/mappers.d.ts.map +1 -0
- package/dist/shared/utils/mappers.js +37 -0
- package/dist/shared/utils/mappers.js.map +1 -0
- package/dist/shared/utils/pagination.d.ts +26 -0
- package/dist/shared/utils/pagination.d.ts.map +1 -0
- package/dist/shared/utils/pagination.js +28 -0
- package/dist/shared/utils/pagination.js.map +1 -0
- package/dist/shared/utils/response.d.ts +38 -0
- package/dist/shared/utils/response.d.ts.map +1 -0
- package/dist/shared/utils/response.js +46 -0
- package/dist/shared/utils/response.js.map +1 -0
- package/dist/shared/utils/softDeletes.d.ts +90 -0
- package/dist/shared/utils/softDeletes.d.ts.map +1 -0
- package/dist/shared/utils/softDeletes.js +72 -0
- package/dist/shared/utils/softDeletes.js.map +1 -0
- package/dist/types/index.d.ts +191 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/vite/index.d.ts +30 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +218 -0
- package/dist/vite/index.js.map +1 -0
- 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"}
|