create-vonosan 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
package/dist/index.js ADDED
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ──────────────────────────────────────────────────────────────────
4
+ * 🏢 Company Name: Bonifade Technologies
5
+ * 👨‍💻 Developer: Bowofade Oyerinde
6
+ * 🐙 GitHub: oyenet1
7
+ * 📅 Created Date: 2026-04-05
8
+ * 🔄 Updated Date: 2026-04-05
9
+ * ──────────────────────────────────────────────────────────────────
10
+ */
11
+ import { execa } from 'execa';
12
+ import { runWizard } from './wizard.js';
13
+ import { scaffoldProject } from './scaffold.js';
14
+ // ─── Helpers ─────────────────────────────────────────────────────────
15
+ const green = (s) => `\x1b[32m${s}\x1b[0m`;
16
+ const bold = (s) => `\x1b[1m${s}\x1b[0m`;
17
+ const dim = (s) => `\x1b[2m${s}\x1b[0m`;
18
+ // ─── Main ─────────────────────────────────────────────────────────────
19
+ async function main() {
20
+ const args = process.argv.slice(2);
21
+ // Parse project name (first positional arg)
22
+ const projectName = args.find((a) => !a.startsWith('--')) ?? 'my-vonosan-app';
23
+ // Parse flags
24
+ const saasFlag = args.includes('--saas');
25
+ process.stdout.write(bold(`\ncreate-vonosan v0.1.0\n\n`));
26
+ // ── Run interactive wizard ────────────────────────────────────────
27
+ const answers = await runWizard(projectName, saasFlag);
28
+ // ── Scaffold project files ────────────────────────────────────────
29
+ process.stdout.write(`\nScaffolding project "${projectName}"...\n`);
30
+ try {
31
+ scaffoldProject(answers, projectName);
32
+ }
33
+ catch (err) {
34
+ process.stderr.write(`\x1b[31mError: ${String(err)}\x1b[0m\n`);
35
+ process.exit(1);
36
+ }
37
+ process.stdout.write(green(`✔ Project files created.\n\n`));
38
+ // ── Install dependencies ──────────────────────────────────────────
39
+ const pm = answers.packageManager;
40
+ const installCmd = pm === 'bun' ? 'bun install' : `${pm} install`;
41
+ process.stdout.write(`Installing dependencies with ${bold(pm)}...\n`);
42
+ try {
43
+ await execa(pm, ['install'], {
44
+ cwd: projectName,
45
+ stdio: 'inherit',
46
+ });
47
+ process.stdout.write(green(`✔ Dependencies installed.\n\n`));
48
+ }
49
+ catch {
50
+ process.stdout.write(`\x1b[33m⚠ Dependency install failed. Run "${installCmd}" manually.\x1b[0m\n\n`);
51
+ }
52
+ // ── Initialize git ────────────────────────────────────────────────
53
+ process.stdout.write(`Initializing git repository...\n`);
54
+ try {
55
+ await execa('git', ['init'], { cwd: projectName, stdio: 'pipe' });
56
+ await execa('git', ['add', '-A'], { cwd: projectName, stdio: 'pipe' });
57
+ await execa('git', ['commit', '-m', 'chore: initial project scaffold'], {
58
+ cwd: projectName,
59
+ stdio: 'pipe',
60
+ });
61
+ process.stdout.write(green(`✔ Git repository initialized.\n\n`));
62
+ }
63
+ catch {
64
+ process.stdout.write(`\x1b[33m⚠ Git init failed. Initialize manually with "git init".\x1b[0m\n\n`);
65
+ }
66
+ // ── Done ──────────────────────────────────────────────────────────
67
+ process.stdout.write([
68
+ green(`✔ ${projectName} is ready!\n`),
69
+ '',
70
+ ` ${dim('Next steps:')}`,
71
+ ` ${bold(`cd ${projectName}`)}`,
72
+ ` ${bold(`${pm === 'bun' ? 'bun' : pm} run dev`)}`,
73
+ '',
74
+ ].join('\n'));
75
+ }
76
+ main().catch((err) => {
77
+ process.stderr.write(`\x1b[31mFatal: ${String(err)}\x1b[0m\n`);
78
+ process.exit(1);
79
+ });
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAYhD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmUhF"}
@@ -0,0 +1,315 @@
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
+ const HEADER = (date) => `/**
11
+ * ──────────────────────────────────────────────────────────────────
12
+ * 🏢 Company Name: Bonifade Technologies
13
+ * 👨‍💻 Developer: Bowofade Oyerinde
14
+ * 🐙 GitHub: oyenet1
15
+ * 📅 Created Date: ${date}
16
+ * 🔄 Updated Date: ${date}
17
+ * ──────────────────────────────────────────────────────────────────
18
+ */`;
19
+ export function generateTemplates(answers) {
20
+ const date = new Date().toISOString().slice(0, 10);
21
+ const h = HEADER(date);
22
+ const { projectName, deploymentTarget, database, auth, apiDocs, saas, testing } = answers;
23
+ return {
24
+ 'vonosan.config.ts': `${h}
25
+
26
+ import { defineVonosanConfig } from 'vonosan'
27
+
28
+ export default defineVonosanConfig({
29
+ app: {
30
+ name: '${projectName}',
31
+ url: process.env.APP_URL ?? 'http://localhost:4000',
32
+ env: process.env.NODE_ENV ?? 'development',
33
+ key: process.env.APP_KEY ?? 'change-me',
34
+ language: 'ts',
35
+ },
36
+ runtime: '${deploymentTarget}',
37
+ mode: '${answers.projectType}',
38
+ ${saas ? 'saas: true,' : ''}
39
+ ${apiDocs ? `docs: {
40
+ swagger: true,
41
+ fiberplane: false,
42
+ scalar: true,
43
+ openapi: '/openapi.json',
44
+ },` : ''}
45
+ ${testing !== 'none' ? `test: { driver: '${testing}' },` : ''}
46
+ })
47
+ `,
48
+ 'vite.config.ts': `${h}
49
+
50
+ import { defineConfig } from 'vite'
51
+ import { vonosan } from 'vonosan/vite'
52
+ import vonoConfig from './vonosan.config.js'
53
+
54
+ export default defineConfig({
55
+ plugins: [vonosan(vonoConfig)],
56
+ })
57
+ `,
58
+ 'drizzle.config.ts': `${h}
59
+
60
+ import { defineConfig } from 'drizzle-kit'
61
+
62
+ export default defineConfig({
63
+ schema: './src/db/schema.ts',
64
+ out: './src/db/migrations',
65
+ dialect: '${database === 'postgres' ? 'postgresql' : database === 'mysql' ? 'mysql' : 'sqlite'}',
66
+ dbCredentials: {
67
+ url: process.env.DATABASE_URL!,
68
+ },
69
+ })
70
+ `,
71
+ '.env': `# ──────────────────────────────────────────────────────────────────
72
+ # ${projectName} — Environment Variables
73
+ # ──────────────────────────────────────────────────────────────────
74
+
75
+ NODE_ENV=development
76
+ PORT=4000
77
+ APP_URL=http://localhost:4000
78
+ APP_KEY=change-me-to-a-random-secret
79
+
80
+ DATABASE_URL=postgresql://postgres:password@localhost:5432/${projectName.replace(/-/g, '_')}
81
+ JWT_SECRET=change-me-to-a-random-jwt-secret
82
+ CLIENT_URL=http://localhost:5173
83
+ ALLOWED_ORIGINS=http://localhost:5173,http://localhost:4000
84
+ `,
85
+ '.env.example': `# ──────────────────────────────────────────────────────────────────
86
+ # ${projectName} — Environment Variables Example
87
+ # Copy this file to .env and fill in the values.
88
+ # ──────────────────────────────────────────────────────────────────
89
+
90
+ NODE_ENV=
91
+ PORT=
92
+ APP_URL=
93
+ APP_KEY=
94
+
95
+ DATABASE_URL=
96
+ JWT_SECRET=
97
+ CLIENT_URL=
98
+ ALLOWED_ORIGINS=
99
+ `,
100
+ 'llms.txt': `# ${projectName}
101
+
102
+ > A Vonosan full-stack TypeScript application.
103
+
104
+ ## Stack
105
+ - Runtime: ${deploymentTarget}
106
+ - Database: ${database}
107
+ - Auth: ${auth ? 'JWT + refresh tokens' : 'none'}
108
+ - Queue: ${answers.queue}
109
+ - Cache: ${answers.cache}
110
+ - Email: ${answers.email}
111
+ - Storage: ${answers.storage}
112
+
113
+ ## Structure
114
+ - \`src/modules/\` — feature modules (routes, controller, service, schema)
115
+ - \`src/db/\` — Drizzle ORM schema and migrations
116
+ - \`src/shared/\` — shared utilities, gates, policies
117
+ - \`src/emails/\` — email templates
118
+ - \`src/jobs/\` — cron jobs
119
+
120
+ ## Commands
121
+ - \`vonosan make:module <name>\` — scaffold a new module
122
+ - \`vonosan migrate:run\` — run pending migrations
123
+ - \`vonosan lint\` — check code quality
124
+ `,
125
+ 'index.html': `<!DOCTYPE html>
126
+ <html lang="en" class="h-full">
127
+ <head>
128
+ <meta charset="UTF-8" />
129
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
130
+ <title>${projectName}</title>
131
+ </head>
132
+ <body class="h-full">
133
+ <div id="app" class="isolate"><!--ssr-outlet--></div>
134
+ <script type="module" src="/src/main.ts"></script>
135
+ </body>
136
+ </html>
137
+ `,
138
+ 'src/App.vue': `<!--
139
+ ${projectName} — Root App Component
140
+ -->
141
+ <template>
142
+ <UApp>
143
+ <RouterView />
144
+ </UApp>
145
+ </template>
146
+ `,
147
+ 'src/main.ts': `${h}
148
+
149
+ import { createSSRApp } from 'vue'
150
+ import { createPinia } from 'pinia'
151
+ import { createHead } from '@unhead/vue'
152
+ import { ui } from '@nuxt/ui/vue-plugin'
153
+ import App from './App.vue'
154
+ import { createRouter } from './router.js'
155
+
156
+ export function createApp() {
157
+ const app = createSSRApp(App)
158
+ const pinia = createPinia()
159
+ const head = createHead()
160
+ const router = createRouter()
161
+
162
+ app.use(pinia)
163
+ app.use(head)
164
+ app.use(ui)
165
+ app.use(router)
166
+
167
+ return { app, pinia, head, router }
168
+ }
169
+ `,
170
+ 'src/app.ts': `${h}
171
+
172
+ import { createVonosanApp } from 'vonosan/server'
173
+ import config from '../vonosan.config.js'
174
+ ${apiDocs ? "import openApiSpec from './openapi.js'" : ''}
175
+
176
+ const app = createVonosanApp({
177
+ config,
178
+ ${apiDocs ? 'openApiSpec,' : ''}
179
+ })
180
+
181
+ export default app
182
+ `,
183
+ 'src/server.ts': `${h}
184
+
185
+ import app from './app.js'
186
+
187
+ const port = Number(process.env.PORT ?? 4000)
188
+
189
+ export default {
190
+ port,
191
+ fetch: app.fetch,
192
+ }
193
+ `,
194
+ 'src/router.ts': `${h}
195
+
196
+ import { createRouter as _createRouter, createWebHistory, createMemoryHistory } from 'vue-router'
197
+
198
+ const routes = [
199
+ {
200
+ path: '/',
201
+ component: () => import('./modules/home/index.page.vue'),
202
+ },
203
+ ]
204
+
205
+ export function createRouter() {
206
+ return _createRouter({
207
+ history: import.meta.env.SSR ? createMemoryHistory() : createWebHistory(),
208
+ routes,
209
+ })
210
+ }
211
+ `,
212
+ 'src/route-rules.ts': `${h}
213
+
214
+ import type { RouteRules } from 'vonosan/server'
215
+
216
+ /**
217
+ * Route rules — control SSR/SPA rendering per path.
218
+ * Matched top-to-bottom; first match wins.
219
+ */
220
+ export const routeRules: RouteRules = {
221
+ '/': { ssr: true },
222
+ '/dashboard/**': { ssr: false },
223
+ '/admin/**': { ssr: false },
224
+ }
225
+ `,
226
+ 'src/index.ts': `${h}
227
+
228
+ export { default } from './server.js'
229
+ `,
230
+ ...(apiDocs
231
+ ? {
232
+ 'src/openapi.ts': `${h}
233
+
234
+ import { generateOpenApiSpec } from 'vonosan/server'
235
+
236
+ export default generateOpenApiSpec(
237
+ '${projectName}',
238
+ '1.0.0',
239
+ process.env.APP_URL ?? 'http://localhost:4000',
240
+ )
241
+ `,
242
+ }
243
+ : {}),
244
+ 'src/db/index.ts': `${h}
245
+
246
+ import { createDb } from '@vonosan/drizzle'
247
+
248
+ export const { db, client } = createDb(process.env.DATABASE_URL!)
249
+ `,
250
+ 'src/db/schema.ts': `${h}
251
+
252
+ // Auto-generated by vonosan schema:sync
253
+ // Add your schema imports here
254
+
255
+ export {}
256
+ `,
257
+ 'src/db/relations.ts': `${h}
258
+
259
+ // Cross-module Drizzle relations
260
+ // Import and re-export relations from each module schema here
261
+
262
+ export {}
263
+ `,
264
+ 'package.json': JSON.stringify({
265
+ name: projectName,
266
+ version: '0.1.0',
267
+ type: 'module',
268
+ scripts: {
269
+ dev: 'vite',
270
+ build: 'vite build',
271
+ preview: 'vite preview',
272
+ start: 'bun dist/server/index.js',
273
+ 'migrate:run': 'vonosan migrate:run',
274
+ 'migrate:make': 'vonosan migrate:make',
275
+ lint: 'vonosan lint',
276
+ ...(testing !== 'none' ? { test: testing === 'bun' ? 'bun test' : testing } : {}),
277
+ },
278
+ dependencies: {
279
+ vonosan: 'latest',
280
+ '@vonosan/drizzle': 'latest',
281
+ hono: 'latest',
282
+ vue: 'latest',
283
+ 'vue-router': 'latest',
284
+ pinia: 'latest',
285
+ '@unhead/vue': 'latest',
286
+ '@nuxt/ui': 'latest',
287
+ 'drizzle-orm': 'latest',
288
+ zod: 'latest',
289
+ },
290
+ devDependencies: {
291
+ '@vonosan/cli': 'latest',
292
+ typescript: 'latest',
293
+ vite: 'latest',
294
+ 'drizzle-kit': 'latest',
295
+ '@types/bun': 'latest',
296
+ },
297
+ }, null, 2),
298
+ 'tsconfig.json': JSON.stringify({
299
+ compilerOptions: {
300
+ target: 'ESNext',
301
+ module: 'ESNext',
302
+ moduleResolution: 'bundler',
303
+ strict: true,
304
+ jsx: 'preserve',
305
+ lib: ['ESNext', 'DOM'],
306
+ paths: {
307
+ '@@ws-adapter': ['./node_modules/@vonosan/ws/adapters/bun.js'],
308
+ },
309
+ },
310
+ include: ['src/**/*', 'vonosan.config.ts'],
311
+ exclude: ['node_modules', 'dist'],
312
+ }, null, 2),
313
+ };
314
+ }
315
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "create-vonosan",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Create a new Vonosan project",
6
+ "license": "MIT",
7
+ "author": "Bowofade Oyerinde",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/oyenet1/vonosan.git",
11
+ "directory": "packages/create-vonosan"
12
+ },
13
+ "homepage": "https://github.com/oyenet1/vonosan#readme",
14
+ "keywords": ["vonosan", "vue", "vite", "ssr", "create", "scaffold", "cli"],
15
+ "bin": {
16
+ "create-vonosan": "./dist/index.js"
17
+ },
18
+ "main": "./dist/index.js",
19
+ "files": ["dist"],
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "dev": "tsc -p tsconfig.json --watch"
23
+ },
24
+ "dependencies": {
25
+ "@clack/prompts": "0.11.0",
26
+ "execa": "9.5.2",
27
+ "giget": "1.2.3",
28
+ "kolorist": "1.8.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/bun": "1.2.14",
32
+ "@types/node": "25.5.2",
33
+ "typescript": "5.8.3"
34
+ }
35
+ }