@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Bowofade Oyerinde
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# vono
|
|
2
|
+
|
|
3
|
+
Vono core runtime — config, composables, SSR helpers, and Vite plugin for building fullstack Vue applications.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🔧 **Vite Plugin** — First-class Vite integration for dev and production builds
|
|
8
|
+
- 🖥️ **SSR Helpers** — Server-side rendering utilities with streaming support
|
|
9
|
+
- 🧩 **Composables** — Vue composables for state, head, routing, and more
|
|
10
|
+
- 🌐 **Server Runtime** — Hono-based server with middleware, sessions, and DB integration
|
|
11
|
+
- 📦 **Module System** — Extensible module architecture
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install vono
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Exports
|
|
20
|
+
|
|
21
|
+
| Entry | Description |
|
|
22
|
+
| ------------- | ---------------------------------- |
|
|
23
|
+
| `vono` | Core config and shared utilities |
|
|
24
|
+
| `vono/vite` | Vite plugin |
|
|
25
|
+
| `vono/server` | Server runtime (Hono, middleware) |
|
|
26
|
+
| `vono/client` | Client-side composables |
|
|
27
|
+
| `vono/types` | TypeScript type definitions |
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
// vite.config.ts
|
|
33
|
+
import { vonoPlugin } from "vono/vite";
|
|
34
|
+
|
|
35
|
+
export default {
|
|
36
|
+
plugins: [vonoPlugin()],
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Peer Dependencies
|
|
41
|
+
|
|
42
|
+
- **Required**: `vue`, `vue-router`
|
|
43
|
+
- **Optional**: `hono`, `@unhead/vue`, `pinia`, `drizzle-orm`, `zod`
|
|
44
|
+
|
|
45
|
+
## License
|
|
46
|
+
|
|
47
|
+
MIT © Bowofade Oyerinde
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ──────────────────────────────────────────────────────────────────
|
|
3
|
+
* 🏢 Company Name: Bonifade Technologies
|
|
4
|
+
* 👨💻 Developer: Bowofade Oyerinde
|
|
5
|
+
* 🐙 GitHub: oyenet1
|
|
6
|
+
* 📅 Created Date: 2026-04-05
|
|
7
|
+
* 🔄 Updated Date: 2026-04-05
|
|
8
|
+
* ──────────────────────────────────────────────────────────────────
|
|
9
|
+
*/
|
|
10
|
+
export interface NavigateToOptions {
|
|
11
|
+
/** Replace current history entry instead of pushing */
|
|
12
|
+
replace?: boolean;
|
|
13
|
+
/** Navigate to an external URL (opens in same tab) */
|
|
14
|
+
external?: boolean;
|
|
15
|
+
/** HTTP redirect code for SSR redirects (default: 302) */
|
|
16
|
+
redirectCode?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Set the SSR redirect handler. Called by the Hono renderer before
|
|
20
|
+
* rendering a page so that navigateTo() can trigger a server redirect.
|
|
21
|
+
*/
|
|
22
|
+
export declare function setSSRRedirectHandler(handler: (url: string, code: number) => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* Programmatic navigation — SSR-safe.
|
|
25
|
+
*
|
|
26
|
+
* - On server: triggers a 302 (or custom code) HTTP redirect
|
|
27
|
+
* - On client: uses Vue Router for SPA navigation
|
|
28
|
+
*
|
|
29
|
+
* Usage:
|
|
30
|
+
* ```ts
|
|
31
|
+
* await navigateTo('/dashboard')
|
|
32
|
+
* await navigateTo('/login', { replace: true })
|
|
33
|
+
* await navigateTo('https://example.com', { external: true })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function navigateTo(path: string, options?: NavigateToOptions): Promise<void>;
|
|
37
|
+
//# sourceMappingURL=navigateTo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigateTo.d.ts","sourceRoot":"","sources":["../../../src/client/composables/navigateTo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAExF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
// SSR redirect context — set by the Hono handler before rendering
|
|
11
|
+
let _ssrRedirect = null;
|
|
12
|
+
/**
|
|
13
|
+
* Set the SSR redirect handler. Called by the Hono renderer before
|
|
14
|
+
* rendering a page so that navigateTo() can trigger a server redirect.
|
|
15
|
+
*/
|
|
16
|
+
export function setSSRRedirectHandler(handler) {
|
|
17
|
+
_ssrRedirect = handler;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Programmatic navigation — SSR-safe.
|
|
21
|
+
*
|
|
22
|
+
* - On server: triggers a 302 (or custom code) HTTP redirect
|
|
23
|
+
* - On client: uses Vue Router for SPA navigation
|
|
24
|
+
*
|
|
25
|
+
* Usage:
|
|
26
|
+
* ```ts
|
|
27
|
+
* await navigateTo('/dashboard')
|
|
28
|
+
* await navigateTo('/login', { replace: true })
|
|
29
|
+
* await navigateTo('https://example.com', { external: true })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function navigateTo(path, options = {}) {
|
|
33
|
+
const { replace = false, external = false, redirectCode = 302 } = options;
|
|
34
|
+
// SSR: trigger server-side redirect
|
|
35
|
+
if (import.meta.env.SSR) {
|
|
36
|
+
if (_ssrRedirect) {
|
|
37
|
+
_ssrRedirect(path, redirectCode);
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Client: use Vue Router
|
|
42
|
+
if (external) {
|
|
43
|
+
window.location.href = path;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Dynamic import to avoid bundling vue-router in SSR context
|
|
47
|
+
const { useRouter } = await import('vue-router');
|
|
48
|
+
const router = useRouter();
|
|
49
|
+
if (replace) {
|
|
50
|
+
await router.replace(path);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
await router.push(path);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=navigateTo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigateTo.js","sourceRoot":"","sources":["../../../src/client/composables/navigateTo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,kEAAkE;AAClE,IAAI,YAAY,GAAiD,IAAI,CAAA;AAErE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA4C;IAChF,YAAY,GAAG,OAAO,CAAA;AACxB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,UAA6B,EAAE;IAE/B,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAEzE,oCAAoC;IACpC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAClC,CAAC;QACD,OAAM;IACR,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;QAC3B,OAAM;IACR,CAAC;IAED,6DAA6D;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,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
|
+
import type { Ref } from 'vue';
|
|
11
|
+
export interface AsyncDataOptions<T> {
|
|
12
|
+
/** Initial value before data is fetched */
|
|
13
|
+
default?: () => T | null;
|
|
14
|
+
/** Whether to skip fetching on the server */
|
|
15
|
+
server?: boolean;
|
|
16
|
+
/** Whether to skip fetching on the client (use SSR data only) */
|
|
17
|
+
lazy?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface AsyncDataResult<T> {
|
|
20
|
+
data: Ref<T | null>;
|
|
21
|
+
pending: Ref<boolean>;
|
|
22
|
+
error: Ref<Error | null>;
|
|
23
|
+
refresh: () => Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Fetch data on the server during SSR, hydrate on the client without
|
|
27
|
+
* a duplicate fetch.
|
|
28
|
+
*
|
|
29
|
+
* Usage:
|
|
30
|
+
* ```ts
|
|
31
|
+
* const { data, pending } = useAsyncData('users', () => fetch('/api/users').then(r => r.json()))
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function useAsyncData<T>(key: string, fetcher: () => Promise<T>, options?: AsyncDataOptions<T>): AsyncDataResult<T>;
|
|
35
|
+
//# sourceMappingURL=useAsyncData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAsyncData.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useAsyncData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACxB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACnB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,gBAAgB,CAAC,CAAC,CAAM,GAChC,eAAe,CAAC,CAAC,CAAC,CAkCpB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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, onServerPrefetch } from 'vue';
|
|
11
|
+
// SSR payload store — keyed by data key
|
|
12
|
+
const ssrPayload = typeof window !== 'undefined'
|
|
13
|
+
? window.__VONO_ASYNC_DATA__ ?? {}
|
|
14
|
+
: {};
|
|
15
|
+
/**
|
|
16
|
+
* Fetch data on the server during SSR, hydrate on the client without
|
|
17
|
+
* a duplicate fetch.
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* ```ts
|
|
21
|
+
* const { data, pending } = useAsyncData('users', () => fetch('/api/users').then(r => r.json()))
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function useAsyncData(key, fetcher, options = {}) {
|
|
25
|
+
const data = ref(ssrPayload[key] ?? options.default?.() ?? null);
|
|
26
|
+
const pending = ref(false);
|
|
27
|
+
const error = ref(null);
|
|
28
|
+
const fetch = async () => {
|
|
29
|
+
pending.value = true;
|
|
30
|
+
error.value = null;
|
|
31
|
+
try {
|
|
32
|
+
data.value = await fetcher();
|
|
33
|
+
// Store in SSR payload for client hydration
|
|
34
|
+
if (import.meta.env.SSR) {
|
|
35
|
+
ssrPayload[key] = data.value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
error.value = err instanceof Error ? err : new Error(String(err));
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
pending.value = false;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// On server: fetch during SSR (before renderToString completes)
|
|
46
|
+
if (import.meta.env.SSR && options.server !== false) {
|
|
47
|
+
onServerPrefetch(fetch);
|
|
48
|
+
}
|
|
49
|
+
// On client: only fetch if data wasn't hydrated from SSR
|
|
50
|
+
if (!import.meta.env.SSR && !ssrPayload[key] && !options.lazy) {
|
|
51
|
+
fetch();
|
|
52
|
+
}
|
|
53
|
+
return { data, pending, error, refresh: fetch };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=useAsyncData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAsyncData.js","sourceRoot":"","sources":["../../../src/client/composables/useAsyncData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAmB3C,wCAAwC;AACxC,MAAM,UAAU,GACd,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAG,MAA6C,CAAC,mBAA+C,IAAI,EAAE;IACvG,CAAC,CAAC,EAAE,CAAA;AAER;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,OAAyB,EACzB,UAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,GAAG,CACb,UAAU,CAAC,GAAG,CAAc,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAC5C,CAAA;IAClB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAe,IAAI,CAAC,CAAA;IAErC,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,OAAO,EAAE,CAAA;YAC5B,4CAA4C;YAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;IAED,gEAAgE;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACpD,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9D,KAAK,EAAE,CAAA;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
export interface CookieOptions {
|
|
12
|
+
maxAge?: number;
|
|
13
|
+
expires?: Date;
|
|
14
|
+
path?: string;
|
|
15
|
+
domain?: string;
|
|
16
|
+
secure?: boolean;
|
|
17
|
+
httpOnly?: boolean;
|
|
18
|
+
sameSite?: 'Strict' | 'Lax' | 'None';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* SSR-safe cookie read/write composable.
|
|
22
|
+
*
|
|
23
|
+
* - On server: reads from the SSR context (injected via provide/inject)
|
|
24
|
+
* - On client: reads/writes document.cookie
|
|
25
|
+
*
|
|
26
|
+
* Usage:
|
|
27
|
+
* ```ts
|
|
28
|
+
* const token = useCookie('auth_token')
|
|
29
|
+
* token.value = 'new-token' // sets cookie
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function useCookie(name: string, options?: CookieOptions): Ref<string | null>;
|
|
33
|
+
//# sourceMappingURL=useCookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCookie.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useCookie.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CACrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAkCvF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
/**
|
|
12
|
+
* SSR-safe cookie read/write composable.
|
|
13
|
+
*
|
|
14
|
+
* - On server: reads from the SSR context (injected via provide/inject)
|
|
15
|
+
* - On client: reads/writes document.cookie
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const token = useCookie('auth_token')
|
|
20
|
+
* token.value = 'new-token' // sets cookie
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function useCookie(name, options = {}) {
|
|
24
|
+
const getValue = () => {
|
|
25
|
+
if (typeof document === 'undefined') {
|
|
26
|
+
// SSR: cookies are not directly accessible here
|
|
27
|
+
// The app should inject cookies via provide/inject from the Hono context
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const match = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));
|
|
31
|
+
return match ? decodeURIComponent(match[1]) : null;
|
|
32
|
+
};
|
|
33
|
+
const cookie = ref(getValue());
|
|
34
|
+
// Override the setter to write to document.cookie on the client
|
|
35
|
+
return new Proxy(cookie, {
|
|
36
|
+
set(target, prop, value) {
|
|
37
|
+
if (prop === 'value') {
|
|
38
|
+
target.value = value;
|
|
39
|
+
if (typeof document !== 'undefined' && value !== null) {
|
|
40
|
+
let cookieStr = `${name}=${encodeURIComponent(value)}`;
|
|
41
|
+
if (options.maxAge !== undefined)
|
|
42
|
+
cookieStr += `; max-age=${options.maxAge}`;
|
|
43
|
+
if (options.expires)
|
|
44
|
+
cookieStr += `; expires=${options.expires.toUTCString()}`;
|
|
45
|
+
if (options.path)
|
|
46
|
+
cookieStr += `; path=${options.path}`;
|
|
47
|
+
if (options.domain)
|
|
48
|
+
cookieStr += `; domain=${options.domain}`;
|
|
49
|
+
if (options.secure)
|
|
50
|
+
cookieStr += '; secure';
|
|
51
|
+
if (options.sameSite)
|
|
52
|
+
cookieStr += `; samesite=${options.sameSite}`;
|
|
53
|
+
document.cookie = cookieStr;
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return Reflect.set(target, prop, value);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=useCookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCookie.js","sourceRoot":"","sources":["../../../src/client/composables/useCookie.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAazB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,UAAyB,EAAE;IACjE,MAAM,QAAQ,GAAG,GAAkB,EAAE;QACnC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,gDAAgD;YAChD,yEAAyE;YACzE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAA;QAC1E,OAAO,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,CAAgB,QAAQ,EAAE,CAAC,CAAA;IAE7C,gEAAgE;IAChE,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;YACrB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,KAAsB,CAAA;gBAErC,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACtD,IAAI,SAAS,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAe,CAAC,EAAE,CAAA;oBAChE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,SAAS,IAAI,aAAa,OAAO,CAAC,MAAM,EAAE,CAAA;oBAC5E,IAAI,OAAO,CAAC,OAAO;wBAAE,SAAS,IAAI,aAAa,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;oBAC9E,IAAI,OAAO,CAAC,IAAI;wBAAE,SAAS,IAAI,UAAU,OAAO,CAAC,IAAI,EAAE,CAAA;oBACvD,IAAI,OAAO,CAAC,MAAM;wBAAE,SAAS,IAAI,YAAY,OAAO,CAAC,MAAM,EAAE,CAAA;oBAC7D,IAAI,OAAO,CAAC,MAAM;wBAAE,SAAS,IAAI,UAAU,CAAA;oBAC3C,IAAI,OAAO,CAAC,QAAQ;wBAAE,SAAS,IAAI,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAA;oBACnE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAA;gBAC7B,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
* Manage form validation errors from API responses.
|
|
12
|
+
*
|
|
13
|
+
* Maps the standard { errors: { field: message } } API error shape
|
|
14
|
+
* directly to form field error display.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* ```ts
|
|
18
|
+
* const { errors, setErrors, clearErrors, getError } = useFormErrors()
|
|
19
|
+
*
|
|
20
|
+
* try {
|
|
21
|
+
* await submitForm()
|
|
22
|
+
* } catch (err) {
|
|
23
|
+
* if (err.status === 422) setErrors(err.data.errors)
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function useFormErrors(): {
|
|
28
|
+
errors: import("vue").Ref<Record<string, string>, Record<string, string>>;
|
|
29
|
+
hasErrors: import("vue").ComputedRef<boolean>;
|
|
30
|
+
setErrors: (newErrors: Record<string, string> | string[] | undefined) => void;
|
|
31
|
+
clearErrors: (field?: string) => void;
|
|
32
|
+
getError: (field: string) => string | undefined;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=useFormErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormErrors.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useFormErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa;;;2BAIG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,KAAG,IAAI;0BAarD,MAAM,KAAG,IAAI;sBASjB,MAAM,KAAG,MAAM,GAAG,SAAS;EAKrD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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, computed } from 'vue';
|
|
11
|
+
/**
|
|
12
|
+
* Manage form validation errors from API responses.
|
|
13
|
+
*
|
|
14
|
+
* Maps the standard { errors: { field: message } } API error shape
|
|
15
|
+
* directly to form field error display.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const { errors, setErrors, clearErrors, getError } = useFormErrors()
|
|
20
|
+
*
|
|
21
|
+
* try {
|
|
22
|
+
* await submitForm()
|
|
23
|
+
* } catch (err) {
|
|
24
|
+
* if (err.status === 422) setErrors(err.data.errors)
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useFormErrors() {
|
|
29
|
+
const errors = ref({});
|
|
30
|
+
const hasErrors = computed(() => Object.keys(errors.value).length > 0);
|
|
31
|
+
function setErrors(newErrors) {
|
|
32
|
+
if (!newErrors)
|
|
33
|
+
return;
|
|
34
|
+
if (Array.isArray(newErrors)) {
|
|
35
|
+
// Array of error strings — map to a generic key
|
|
36
|
+
errors.value = newErrors.reduce((acc, msg, i) => {
|
|
37
|
+
acc[`error_${i}`] = msg;
|
|
38
|
+
return acc;
|
|
39
|
+
}, {});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
errors.value = { ...newErrors };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function clearErrors(field) {
|
|
46
|
+
if (field) {
|
|
47
|
+
const { [field]: _, ...rest } = errors.value;
|
|
48
|
+
errors.value = rest;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
errors.value = {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function getError(field) {
|
|
55
|
+
return errors.value[field];
|
|
56
|
+
}
|
|
57
|
+
return { errors, hasErrors, setErrors, clearErrors, getError };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=useFormErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormErrors.js","sourceRoot":"","sources":["../../../src/client/composables/useFormErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,GAAG,CAAyB,EAAE,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEtE,SAAS,SAAS,CAAC,SAAwD;QACzE,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,gDAAgD;YAChD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;gBACvB,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;QACjC,CAAC;IACH,CAAC;IAED,SAAS,WAAW,CAAC,KAAc;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;YAC5C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AAChE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ──────────────────────────────────────────────────────────────────
|
|
3
|
+
* 🏢 Company Name: Bonifade Technologies
|
|
4
|
+
* 👨💻 Developer: Bowofade Oyerinde
|
|
5
|
+
* 🐙 GitHub: oyenet1
|
|
6
|
+
* 📅 Created Date: 2026-04-05
|
|
7
|
+
* 🔄 Updated Date: 2026-04-05
|
|
8
|
+
* ──────────────────────────────────────────────────────────────────
|
|
9
|
+
*/
|
|
10
|
+
import type { RouteRule } from '../../server/route-rules.js';
|
|
11
|
+
/**
|
|
12
|
+
* Get the route rule for the current page.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* ```ts
|
|
16
|
+
* const { mode, cache } = useRouteRules()
|
|
17
|
+
* if (mode.value === 'spa') { ... }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function useRouteRules(): {
|
|
21
|
+
mode: import("vue").ComputedRef<import("../../server/route-rules.js").RenderMode>;
|
|
22
|
+
cache: import("vue").ComputedRef<number | undefined>;
|
|
23
|
+
swr: import("vue").ComputedRef<boolean | undefined>;
|
|
24
|
+
rule: import("vue").ComputedRef<RouteRule>;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=useRouteRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteRules.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useRouteRules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAK5D;;;;;;;;GAQG;AACH,wBAAgB,aAAa;;;;;EAwB5B"}
|
|
@@ -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
|
+
import { computed } from 'vue';
|
|
11
|
+
import { useRoute } from 'vue-router';
|
|
12
|
+
/**
|
|
13
|
+
* Get the route rule for the current page.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* ```ts
|
|
17
|
+
* const { mode, cache } = useRouteRules()
|
|
18
|
+
* if (mode.value === 'spa') { ... }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function useRouteRules() {
|
|
22
|
+
const route = useRoute();
|
|
23
|
+
const rule = computed(() => {
|
|
24
|
+
const rules = typeof __VONO_ROUTE_RULES__ !== 'undefined' ? __VONO_ROUTE_RULES__ : {};
|
|
25
|
+
const path = route.path;
|
|
26
|
+
for (const [pattern, r] of Object.entries(rules)) {
|
|
27
|
+
if (pattern === path)
|
|
28
|
+
return r;
|
|
29
|
+
if (pattern.endsWith('/**')) {
|
|
30
|
+
const prefix = pattern.slice(0, -3);
|
|
31
|
+
if (path === prefix || path.startsWith(prefix + '/'))
|
|
32
|
+
return r;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { mode: 'ssr' };
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
mode: computed(() => rule.value.mode),
|
|
39
|
+
cache: computed(() => rule.value.cache),
|
|
40
|
+
swr: computed(() => rule.value.swr),
|
|
41
|
+
rule,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=useRouteRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteRules.js","sourceRoot":"","sources":["../../../src/client/composables/useRouteRules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAMrC;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAY,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,OAAO,oBAAoB,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAA;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QAEvB,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;YAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;oBAAE,OAAO,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACvC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACnC,IAAI;KACL,CAAA;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
|
+
export interface SeoOptions {
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
canonical?: string;
|
|
14
|
+
ogImage?: string;
|
|
15
|
+
ogType?: string;
|
|
16
|
+
twitterCard?: 'summary' | 'summary_large_image';
|
|
17
|
+
noIndex?: boolean;
|
|
18
|
+
structuredData?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Set all SEO meta tags for the current page.
|
|
22
|
+
* Works in both SSR and client — tags are server-rendered into HTML.
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* ```ts
|
|
26
|
+
* useSeo({
|
|
27
|
+
* title: 'My Page',
|
|
28
|
+
* description: 'Page description',
|
|
29
|
+
* canonical: '/my-page',
|
|
30
|
+
* ogImage: '/images/og.png',
|
|
31
|
+
* })
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function useSeo(options: SeoOptions): void;
|
|
35
|
+
//# sourceMappingURL=useSeo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSeo.d.ts","sourceRoot":"","sources":["../../../src/client/composables/useSeo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAA;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAyChD"}
|