@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,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 { useHead } from '@unhead/vue';
|
|
11
|
+
/**
|
|
12
|
+
* Set all SEO meta tags for the current page.
|
|
13
|
+
* Works in both SSR and client — tags are server-rendered into HTML.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* ```ts
|
|
17
|
+
* useSeo({
|
|
18
|
+
* title: 'My Page',
|
|
19
|
+
* description: 'Page description',
|
|
20
|
+
* canonical: '/my-page',
|
|
21
|
+
* ogImage: '/images/og.png',
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function useSeo(options) {
|
|
26
|
+
const baseUrl = import.meta.env.SSR
|
|
27
|
+
? (process.env.APP_URL ?? 'https://myapp.com')
|
|
28
|
+
: window.location.origin;
|
|
29
|
+
const canonical = options.canonical
|
|
30
|
+
? `${baseUrl}${options.canonical}`
|
|
31
|
+
: undefined;
|
|
32
|
+
const ogImage = options.ogImage
|
|
33
|
+
? options.ogImage.startsWith('http')
|
|
34
|
+
? options.ogImage
|
|
35
|
+
: `${baseUrl}${options.ogImage}`
|
|
36
|
+
: `${baseUrl}/images/og-default.png`;
|
|
37
|
+
useHead({
|
|
38
|
+
title: options.title,
|
|
39
|
+
meta: [
|
|
40
|
+
{ name: 'description', content: options.description },
|
|
41
|
+
...(options.noIndex ? [{ name: 'robots', content: 'noindex, nofollow' }] : []),
|
|
42
|
+
// Open Graph
|
|
43
|
+
{ property: 'og:title', content: options.title },
|
|
44
|
+
{ property: 'og:description', content: options.description },
|
|
45
|
+
{ property: 'og:type', content: options.ogType ?? 'website' },
|
|
46
|
+
{ property: 'og:image', content: ogImage },
|
|
47
|
+
...(canonical ? [{ property: 'og:url', content: canonical }] : []),
|
|
48
|
+
// Twitter Card
|
|
49
|
+
{ name: 'twitter:card', content: options.twitterCard ?? 'summary_large_image' },
|
|
50
|
+
{ name: 'twitter:title', content: options.title },
|
|
51
|
+
{ name: 'twitter:description', content: options.description },
|
|
52
|
+
{ name: 'twitter:image', content: ogImage },
|
|
53
|
+
],
|
|
54
|
+
link: [
|
|
55
|
+
...(canonical ? [{ rel: 'canonical', href: canonical }] : []),
|
|
56
|
+
],
|
|
57
|
+
script: options.structuredData
|
|
58
|
+
? [{ type: 'application/ld+json', innerHTML: JSON.stringify(options.structuredData) }]
|
|
59
|
+
: [],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=useSeo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSeo.js","sourceRoot":"","sources":["../../../src/client/composables/useSeo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAarC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,MAAM,CAAC,OAAmB;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QACjC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,mBAAmB,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;QACjC,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;QAClC,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;QAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE;QAClC,CAAC,CAAC,GAAG,OAAO,wBAAwB,CAAA;IAEtC,OAAO,CAAC;QACN,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;YACrD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE9E,aAAa;YACb,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;YAChD,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;YAC5D,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE;YAC7D,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;YAC1C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAElE,eAAe;YACf,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,qBAAqB,EAAE;YAC/E,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;YACjD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;YAC7D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE;SAC5C;QACD,IAAI,EAAE;YACJ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D;QACD,MAAM,EAAE,OAAO,CAAC,cAAc;YAC5B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACtF,CAAC,CAAC,EAAE;KACP,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { Ref } from 'vue';
|
|
11
|
+
/**
|
|
12
|
+
* Shared state composable with SSR round-trip support.
|
|
13
|
+
*
|
|
14
|
+
* - On server: stores state in the SSR payload (serialized as window.__VONO_STATE__)
|
|
15
|
+
* - On client: restores state from window.__VONO_STATE__ on hydration
|
|
16
|
+
*
|
|
17
|
+
* Property 12: useState SSR round-trip
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* ```ts
|
|
21
|
+
* const count = useState('counter', () => 0)
|
|
22
|
+
* count.value++ // reactive, SSR-safe
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function useState<T>(key: string, init?: () => T): Ref<T | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Serialize all useState values for injection into the HTML.
|
|
28
|
+
* Called by the SSR renderer to produce window.__VONO_STATE__.
|
|
29
|
+
*/
|
|
30
|
+
export declare function serializeVonoState(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Clear the SSR state store between requests (server-side only).
|
|
33
|
+
*/
|
|
34
|
+
export declare function clearVonoState(): void;
|
|
35
|
+
//# sourceMappingURL=useState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useState.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAK9B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAoC3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAIrC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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 { ref } from 'vue';
|
|
11
|
+
// SSR state store — shared across the request on server, window on client
|
|
12
|
+
const ssrStateStore = {};
|
|
13
|
+
/**
|
|
14
|
+
* Shared state composable with SSR round-trip support.
|
|
15
|
+
*
|
|
16
|
+
* - On server: stores state in the SSR payload (serialized as window.__VONO_STATE__)
|
|
17
|
+
* - On client: restores state from window.__VONO_STATE__ on hydration
|
|
18
|
+
*
|
|
19
|
+
* Property 12: useState SSR round-trip
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* ```ts
|
|
23
|
+
* const count = useState('counter', () => 0)
|
|
24
|
+
* count.value++ // reactive, SSR-safe
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function useState(key, init) {
|
|
28
|
+
// On client: try to restore from SSR payload first
|
|
29
|
+
if (typeof window !== 'undefined') {
|
|
30
|
+
const windowState = window.__VONO_STATE__;
|
|
31
|
+
if (windowState?.[key] !== undefined) {
|
|
32
|
+
const restored = ref(windowState[key]);
|
|
33
|
+
delete windowState[key];
|
|
34
|
+
return restored;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Check SSR store
|
|
38
|
+
if (ssrStateStore[key] !== undefined) {
|
|
39
|
+
return ref(ssrStateStore[key]);
|
|
40
|
+
}
|
|
41
|
+
// Initialize with provided factory or undefined
|
|
42
|
+
const value = init ? init() : undefined;
|
|
43
|
+
ssrStateStore[key] = value;
|
|
44
|
+
const state = ref(value);
|
|
45
|
+
// Keep SSR store in sync via a wrapper
|
|
46
|
+
const proxy = new Proxy(state, {
|
|
47
|
+
set(target, prop, newValue) {
|
|
48
|
+
if (prop === 'value') {
|
|
49
|
+
ssrStateStore[key] = newValue;
|
|
50
|
+
}
|
|
51
|
+
return Reflect.set(target, prop, newValue);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
return proxy;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Serialize all useState values for injection into the HTML.
|
|
58
|
+
* Called by the SSR renderer to produce window.__VONO_STATE__.
|
|
59
|
+
*/
|
|
60
|
+
export function serializeVonoState() {
|
|
61
|
+
return JSON.stringify(ssrStateStore)
|
|
62
|
+
.replace(/</g, '\\u003c')
|
|
63
|
+
.replace(/>/g, '\\u003e');
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Clear the SSR state store between requests (server-side only).
|
|
67
|
+
*/
|
|
68
|
+
export function clearVonoState() {
|
|
69
|
+
for (const key of Object.keys(ssrStateStore)) {
|
|
70
|
+
delete ssrStateStore[key];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=useState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useState.js","sourceRoot":"","sources":["../../../src/client/composables/useState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzB,0EAA0E;AAC1E,MAAM,aAAa,GAA4B,EAAE,CAAA;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAI,GAAW,EAAE,IAAc;IACrD,mDAAmD;IACnD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,WAAW,GAAI,MAA6C,CAAC,cAEtD,CAAA;QAEb,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAkB,CAAC,CAAA;YACvD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;YACvB,OAAO,QAA8B,CAAA;QACvC,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAkB,CAAuB,CAAA;IACvE,CAAC;IAED,gDAAgD;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACvC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAuB,CAAA;IAE9C,uCAAuC;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;QAC7B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;YAC/B,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC5C,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SACjC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;IAC3B,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
|
+
/**
|
|
11
|
+
* Typed fetch wrapper that handles SSR/client URL differences.
|
|
12
|
+
*
|
|
13
|
+
* - On server: uses relative URLs (same process)
|
|
14
|
+
* - On client: uses absolute URLs (cross-origin safe)
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* ```ts
|
|
18
|
+
* const users = await useVonoFetch<User[]>('/api/v1/users')
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function useVonoFetch<T = unknown>(url: string, options?: RequestInit & {
|
|
22
|
+
baseUrl?: string;
|
|
23
|
+
}): Promise<T>;
|
|
24
|
+
//# sourceMappingURL=useVonoFetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVonoFetch.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useVonoFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAW,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,OAAO,CAAC,CAAC,CAAC,CA6BZ"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
* Typed fetch wrapper that handles SSR/client URL differences.
|
|
12
|
+
*
|
|
13
|
+
* - On server: uses relative URLs (same process)
|
|
14
|
+
* - On client: uses absolute URLs (cross-origin safe)
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* ```ts
|
|
18
|
+
* const users = await useVonoFetch<User[]>('/api/v1/users')
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export async function useVonoFetch(url, options = {}) {
|
|
22
|
+
const { baseUrl, ...fetchOptions } = options;
|
|
23
|
+
// Resolve the full URL
|
|
24
|
+
let fullUrl;
|
|
25
|
+
if (url.startsWith('http://') || url.startsWith('https://')) {
|
|
26
|
+
fullUrl = url;
|
|
27
|
+
}
|
|
28
|
+
else if (import.meta.env.SSR) {
|
|
29
|
+
// On server: use the configured base URL or localhost
|
|
30
|
+
const base = baseUrl ?? process.env.APP_URL ?? 'http://localhost:4000';
|
|
31
|
+
fullUrl = `${base}${url}`;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// On client: relative URL works fine
|
|
35
|
+
fullUrl = url;
|
|
36
|
+
}
|
|
37
|
+
const response = await fetch(fullUrl, {
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
...fetchOptions.headers,
|
|
41
|
+
},
|
|
42
|
+
...fetchOptions,
|
|
43
|
+
});
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
throw new Error(`[vono] useVonoFetch: ${response.status} ${response.statusText} — ${url}`);
|
|
46
|
+
}
|
|
47
|
+
return response.json();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=useVonoFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVonoFetch.js","sourceRoot":"","sources":["../../../src/client/composables/useVonoFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,UAA8C,EAAE;IAEhD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAA;IAE5C,uBAAuB;IACvB,IAAI,OAAe,CAAA;IACnB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,OAAO,GAAG,GAAG,CAAA;IACf,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC/B,sDAAsD;QACtD,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAA;QACtE,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,OAAO,GAAG,GAAG,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;QACpC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,YAAY,CAAC,OAAO;SACxB;QACD,GAAG,YAAY;KAChB,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,GAAG,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 { useAsyncData } from './composables/useAsyncData.js';
|
|
11
|
+
export { useVonoFetch } from './composables/useVonoFetch.js';
|
|
12
|
+
export { useCookie } from './composables/useCookie.js';
|
|
13
|
+
export { useState, serializeVonoState, clearVonoState } from './composables/useState.js';
|
|
14
|
+
export { navigateTo, setSSRRedirectHandler } from './composables/navigateTo.js';
|
|
15
|
+
export { useSeo } from './composables/useSeo.js';
|
|
16
|
+
export { useRouteRules } from './composables/useRouteRules.js';
|
|
17
|
+
export { useFormErrors } from './composables/useFormErrors.js';
|
|
18
|
+
export { hydratePinia, serializePiniaState } from './pinia-hydration.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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/client — client-side composables and utilities
|
|
11
|
+
export { useAsyncData } from './composables/useAsyncData.js';
|
|
12
|
+
export { useVonoFetch } from './composables/useVonoFetch.js';
|
|
13
|
+
export { useCookie } from './composables/useCookie.js';
|
|
14
|
+
export { useState, serializeVonoState, clearVonoState } from './composables/useState.js';
|
|
15
|
+
export { navigateTo, setSSRRedirectHandler } from './composables/navigateTo.js';
|
|
16
|
+
export { useSeo } from './composables/useSeo.js';
|
|
17
|
+
export { useRouteRules } from './composables/useRouteRules.js';
|
|
18
|
+
export { useFormErrors } from './composables/useFormErrors.js';
|
|
19
|
+
export { hydratePinia, serializePiniaState } from './pinia-hydration.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,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 { resolveLayout } from './resolve-layout.js';
|
|
11
|
+
export type { LayoutName } from './resolve-layout.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/layouts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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 { resolveLayout } from './resolve-layout.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/layouts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 { Component } from 'vue';
|
|
11
|
+
export type LayoutName = 'default' | 'dashboard' | 'auth' | 'blank' | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* resolveLayout — returns the correct layout component for a given name.
|
|
14
|
+
*
|
|
15
|
+
* Returns null for 'blank' or undefined (no wrapper).
|
|
16
|
+
* Returns a lazy-loaded component for named layouts.
|
|
17
|
+
*
|
|
18
|
+
* The actual .vue files live in the generated project's src/shared/layouts/.
|
|
19
|
+
* This function is a runtime helper — the import paths are resolved by Vite
|
|
20
|
+
* in the consuming project, not by tsc in the framework package.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveLayout(layoutName: LayoutName, layoutMap?: Record<string, Component>): Component | null;
|
|
23
|
+
//# sourceMappingURL=resolve-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-layout.d.ts","sourceRoot":"","sources":["../../../src/client/layouts/resolve-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAE/E;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,SAAS,GAAG,IAAI,CAWlB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
* resolveLayout — returns the correct layout component for a given name.
|
|
12
|
+
*
|
|
13
|
+
* Returns null for 'blank' or undefined (no wrapper).
|
|
14
|
+
* Returns a lazy-loaded component for named layouts.
|
|
15
|
+
*
|
|
16
|
+
* The actual .vue files live in the generated project's src/shared/layouts/.
|
|
17
|
+
* This function is a runtime helper — the import paths are resolved by Vite
|
|
18
|
+
* in the consuming project, not by tsc in the framework package.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveLayout(layoutName, layoutMap) {
|
|
21
|
+
if (!layoutName || layoutName === 'blank')
|
|
22
|
+
return null;
|
|
23
|
+
// If a custom layout map is provided (from the consuming project), use it
|
|
24
|
+
if (layoutMap && layoutMap[layoutName]) {
|
|
25
|
+
return layoutMap[layoutName];
|
|
26
|
+
}
|
|
27
|
+
// Return null — the consuming project's App.vue handles layout resolution
|
|
28
|
+
// via its own import.meta.glob of src/shared/layouts/*.vue
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=resolve-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-layout.js","sourceRoot":"","sources":["../../../src/client/layouts/resolve-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAsB,EACtB,SAAqC;IAErC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAEtD,0EAA0E;IAC1E,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,UAAU,CAAC,CAAA;IAC9B,CAAC;IAED,0EAA0E;IAC1E,2DAA2D;IAC3D,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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 { setupNuxtUI } from './setup.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/nuxt-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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 { setupNuxtUI } from './setup.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/nuxt-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,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 { App } from 'vue';
|
|
11
|
+
/**
|
|
12
|
+
* setupNuxtUI — registers the @nuxt/ui Vue plugin on the app instance.
|
|
13
|
+
*
|
|
14
|
+
* Call this in your generated src/main.ts:
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { setupNuxtUI } from 'vono/client'
|
|
17
|
+
* setupNuxtUI(app, { primary: 'blue', neutral: 'zinc' })
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param app — Vue app instance
|
|
21
|
+
* @param colors — optional color overrides (primary, neutral)
|
|
22
|
+
*/
|
|
23
|
+
export declare function setupNuxtUI(app: App, colors?: {
|
|
24
|
+
primary?: string;
|
|
25
|
+
neutral?: string;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/client/nuxt-ui/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI9B;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,GAAG,EACR,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -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
|
+
// ─── setupNuxtUI ─────────────────────────────────────────────────────
|
|
11
|
+
/**
|
|
12
|
+
* setupNuxtUI — registers the @nuxt/ui Vue plugin on the app instance.
|
|
13
|
+
*
|
|
14
|
+
* Call this in your generated src/main.ts:
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { setupNuxtUI } from 'vono/client'
|
|
17
|
+
* setupNuxtUI(app, { primary: 'blue', neutral: 'zinc' })
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param app — Vue app instance
|
|
21
|
+
* @param colors — optional color overrides (primary, neutral)
|
|
22
|
+
*/
|
|
23
|
+
export async function setupNuxtUI(app, colors) {
|
|
24
|
+
try {
|
|
25
|
+
// Dynamic import to avoid hard dependency at build time
|
|
26
|
+
const { ui } = await import('@nuxt/ui/vue-plugin');
|
|
27
|
+
if (colors) {
|
|
28
|
+
// @nuxt/ui reads colors from CSS variables; pass them as plugin options
|
|
29
|
+
app.use(ui, { colors });
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
app.use(ui);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// @nuxt/ui not installed — silently skip
|
|
37
|
+
// The user may not have it as a dependency yet
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/client/nuxt-ui/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wEAAwE;AAExE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAQ,EACR,MAA+C;IAE/C,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAElD,IAAI,MAAM,EAAE,CAAC;YACX,wEAAwE;YACxE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,+CAA+C;IACjD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
* Hydrate Pinia state from the server-injected script tag.
|
|
12
|
+
*
|
|
13
|
+
* Call this in app.ts before mounting the Vue app:
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { hydratePinia } from 'vono/client'
|
|
16
|
+
* hydratePinia(pinia)
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Property 11: Pinia state SSR round-trip
|
|
20
|
+
* Serialized on server → injected as JSON → deserialized on client
|
|
21
|
+
* → equivalent state object
|
|
22
|
+
*/
|
|
23
|
+
export declare function hydratePinia(pinia: {
|
|
24
|
+
state: {
|
|
25
|
+
value: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
}): void;
|
|
28
|
+
/**
|
|
29
|
+
* Serialize Pinia state for server injection.
|
|
30
|
+
* XSS-safe: escapes < and > to prevent </script> injection.
|
|
31
|
+
*
|
|
32
|
+
* Used internally by the SSR renderer.
|
|
33
|
+
*/
|
|
34
|
+
export declare function serializePiniaState(state: Record<string, unknown>): string;
|
|
35
|
+
//# sourceMappingURL=pinia-hydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinia-hydration.d.ts","sourceRoot":"","sources":["../../src/client/pinia-hydration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,CAYvF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI1E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
* Hydrate Pinia state from the server-injected script tag.
|
|
12
|
+
*
|
|
13
|
+
* Call this in app.ts before mounting the Vue app:
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { hydratePinia } from 'vono/client'
|
|
16
|
+
* hydratePinia(pinia)
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Property 11: Pinia state SSR round-trip
|
|
20
|
+
* Serialized on server → injected as JSON → deserialized on client
|
|
21
|
+
* → equivalent state object
|
|
22
|
+
*/
|
|
23
|
+
export function hydratePinia(pinia) {
|
|
24
|
+
if (typeof document === 'undefined')
|
|
25
|
+
return;
|
|
26
|
+
const stateEl = document.getElementById('__pinia');
|
|
27
|
+
if (!stateEl?.textContent)
|
|
28
|
+
return;
|
|
29
|
+
try {
|
|
30
|
+
const state = JSON.parse(stateEl.textContent);
|
|
31
|
+
pinia.state.value = state;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Malformed state — ignore and let the app fetch fresh data
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Serialize Pinia state for server injection.
|
|
39
|
+
* XSS-safe: escapes < and > to prevent </script> injection.
|
|
40
|
+
*
|
|
41
|
+
* Used internally by the SSR renderer.
|
|
42
|
+
*/
|
|
43
|
+
export function serializePiniaState(state) {
|
|
44
|
+
return JSON.stringify(state)
|
|
45
|
+
.replace(/</g, '\\u003c')
|
|
46
|
+
.replace(/>/g, '\\u003e');
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pinia-hydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinia-hydration.js","sourceRoot":"","sources":["../../src/client/pinia-hydration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,KAAoD;IAC/E,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO,EAAE,WAAW;QAAE,OAAM;IAEjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAA4B,CAAA;QACxE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA8B;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACzB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAC7B,CAAC"}
|