vonosan-cli 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/dist/__tests__/env-parity.pbt.test.d.ts +15 -0
- package/dist/__tests__/env-parity.pbt.test.d.ts.map +1 -0
- package/dist/__tests__/env-parity.pbt.test.js +125 -0
- package/dist/__tests__/env-parity.pbt.test.js.map +1 -0
- package/dist/__tests__/module-generator.pbt.test.d.ts +15 -0
- package/dist/__tests__/module-generator.pbt.test.d.ts.map +1 -0
- package/dist/__tests__/module-generator.pbt.test.js +130 -0
- package/dist/__tests__/module-generator.pbt.test.js.map +1 -0
- package/dist/commands/add.d.ts +21 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +128 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/audit.d.ts +18 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +73 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/branch-finish.d.ts +19 -0
- package/dist/commands/branch-finish.d.ts.map +1 -0
- package/dist/commands/branch-finish.js +80 -0
- package/dist/commands/branch-finish.js.map +1 -0
- package/dist/commands/branch-new.d.ts +17 -0
- package/dist/commands/branch-new.d.ts.map +1 -0
- package/dist/commands/branch-new.js +70 -0
- package/dist/commands/branch-new.js.map +1 -0
- package/dist/commands/commit.d.ts +21 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +79 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/db.d.ts +28 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +83 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/env-add.d.ts +17 -0
- package/dist/commands/env-add.d.ts.map +1 -0
- package/dist/commands/env-add.js +73 -0
- package/dist/commands/env-add.js.map +1 -0
- package/dist/commands/fix-headers.d.ts +15 -0
- package/dist/commands/fix-headers.d.ts.map +1 -0
- package/dist/commands/fix-headers.js +37 -0
- package/dist/commands/fix-headers.js.map +1 -0
- package/dist/commands/fix-logs.d.ts +15 -0
- package/dist/commands/fix-logs.d.ts.map +1 -0
- package/dist/commands/fix-logs.js +87 -0
- package/dist/commands/fix-logs.js.map +1 -0
- package/dist/commands/jobs.d.ts +17 -0
- package/dist/commands/jobs.d.ts.map +1 -0
- package/dist/commands/jobs.js +107 -0
- package/dist/commands/jobs.js.map +1 -0
- package/dist/commands/lint.d.ts +15 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +49 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/make.d.ts +31 -0
- package/dist/commands/make.d.ts.map +1 -0
- package/dist/commands/make.js +176 -0
- package/dist/commands/make.js.map +1 -0
- package/dist/commands/migrate.d.ts +43 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +120 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/schema-sync.d.ts +17 -0
- package/dist/commands/schema-sync.d.ts.map +1 -0
- package/dist/commands/schema-sync.js +48 -0
- package/dist/commands/schema-sync.js.map +1 -0
- package/dist/commands/test.d.ts +19 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +113 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/upgrade.d.ts +24 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +177 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/generators/deployment/docker-compose.d.ts +20 -0
- package/dist/generators/deployment/docker-compose.d.ts.map +1 -0
- package/dist/generators/deployment/docker-compose.js +95 -0
- package/dist/generators/deployment/docker-compose.js.map +1 -0
- package/dist/generators/deployment/dockerfile.d.ts +18 -0
- package/dist/generators/deployment/dockerfile.d.ts.map +1 -0
- package/dist/generators/deployment/dockerfile.js +99 -0
- package/dist/generators/deployment/dockerfile.js.map +1 -0
- package/dist/generators/deployment/pm2.d.ts +17 -0
- package/dist/generators/deployment/pm2.d.ts.map +1 -0
- package/dist/generators/deployment/pm2.js +59 -0
- package/dist/generators/deployment/pm2.js.map +1 -0
- package/dist/generators/deployment/secrets.d.ts +19 -0
- package/dist/generators/deployment/secrets.d.ts.map +1 -0
- package/dist/generators/deployment/secrets.js +41 -0
- package/dist/generators/deployment/secrets.js.map +1 -0
- package/dist/generators/deployment/shutdown.d.ts +17 -0
- package/dist/generators/deployment/shutdown.d.ts.map +1 -0
- package/dist/generators/deployment/shutdown.js +61 -0
- package/dist/generators/deployment/shutdown.js.map +1 -0
- package/dist/generators/deployment/wrangler.d.ts +25 -0
- package/dist/generators/deployment/wrangler.d.ts.map +1 -0
- package/dist/generators/deployment/wrangler.js +93 -0
- package/dist/generators/deployment/wrangler.js.map +1 -0
- package/dist/generators/file-generators.d.ts +38 -0
- package/dist/generators/file-generators.d.ts.map +1 -0
- package/dist/generators/file-generators.js +546 -0
- package/dist/generators/file-generators.js.map +1 -0
- package/dist/generators/module-generator.d.ts +33 -0
- package/dist/generators/module-generator.d.ts.map +1 -0
- package/dist/generators/module-generator.js +61 -0
- package/dist/generators/module-generator.js.map +1 -0
- package/dist/header-generator.d.ts +34 -0
- package/dist/header-generator.d.ts.map +1 -0
- package/dist/header-generator.js +77 -0
- package/dist/header-generator.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +177 -0
- package/dist/index.js.map +1 -0
- package/dist/linter/env-parity.d.ts +28 -0
- package/dist/linter/env-parity.d.ts.map +1 -0
- package/dist/linter/env-parity.js +59 -0
- package/dist/linter/env-parity.js.map +1 -0
- package/dist/linter.d.ts +23 -0
- package/dist/linter.d.ts.map +1 -0
- package/dist/linter.js +207 -0
- package/dist/linter.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,87 @@
|
|
|
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 { readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import fg from 'fast-glob';
|
|
13
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
14
|
+
const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
15
|
+
const dim = (s) => `\x1b[2m${s}\x1b[0m`;
|
|
16
|
+
/** Maps console method names to Logger equivalents */
|
|
17
|
+
const METHOD_MAP = {
|
|
18
|
+
log: 'info',
|
|
19
|
+
warn: 'warn',
|
|
20
|
+
error: 'error',
|
|
21
|
+
debug: 'debug',
|
|
22
|
+
info: 'info',
|
|
23
|
+
};
|
|
24
|
+
const LOGGER_IMPORT = `import { Logger } from 'vonosan/server'`;
|
|
25
|
+
const LOGGER_IMPORT_RE = /import\s*\{[^}]*Logger[^}]*\}\s*from\s*['"]vonosan\/server['"]/;
|
|
26
|
+
/**
|
|
27
|
+
* Replaces all `console.*()` calls in `content` with `Logger.*()` equivalents
|
|
28
|
+
* and ensures the Logger import is present.
|
|
29
|
+
*
|
|
30
|
+
* Returns `null` when no changes were needed.
|
|
31
|
+
*/
|
|
32
|
+
function fixLogs(content) {
|
|
33
|
+
if (content.includes('// @vonosan-ignore-logs'))
|
|
34
|
+
return null;
|
|
35
|
+
const consoleRe = /\bconsole\.(log|warn|error|debug|info)\s*\(/g;
|
|
36
|
+
let changed = false;
|
|
37
|
+
const updated = content.replace(consoleRe, (_match, method) => {
|
|
38
|
+
changed = true;
|
|
39
|
+
const loggerMethod = METHOD_MAP[method] ?? 'info';
|
|
40
|
+
return `Logger.${loggerMethod}(`;
|
|
41
|
+
});
|
|
42
|
+
if (!changed)
|
|
43
|
+
return null;
|
|
44
|
+
// Ensure Logger is imported
|
|
45
|
+
if (!LOGGER_IMPORT_RE.test(updated)) {
|
|
46
|
+
// Insert after the last existing import line, or at the top
|
|
47
|
+
const lastImportIdx = [...updated.matchAll(/^import .+$/gm)].pop();
|
|
48
|
+
if (lastImportIdx?.index !== undefined) {
|
|
49
|
+
const insertAt = lastImportIdx.index + lastImportIdx[0].length;
|
|
50
|
+
return updated.slice(0, insertAt) + '\n' + LOGGER_IMPORT + updated.slice(insertAt);
|
|
51
|
+
}
|
|
52
|
+
return LOGGER_IMPORT + '\n\n' + updated;
|
|
53
|
+
}
|
|
54
|
+
return updated;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* `vonosan fix:logs` — replaces raw `console.*` calls with `Logger.*` equivalents
|
|
58
|
+
* across all .ts files under src/.
|
|
59
|
+
*/
|
|
60
|
+
export async function runFixLogs(args) {
|
|
61
|
+
const srcDir = join(process.cwd(), args[0] ?? 'src');
|
|
62
|
+
// Only .ts files — .vue files may have <script> blocks but we keep it simple
|
|
63
|
+
const pattern = join(srcDir, '**/*.ts').replace(/\\/g, '/');
|
|
64
|
+
const files = await fg(pattern, {
|
|
65
|
+
absolute: true,
|
|
66
|
+
ignore: ['**/node_modules/**', '**/dist/**', '**/logger.ts'],
|
|
67
|
+
});
|
|
68
|
+
let fixed = 0;
|
|
69
|
+
let skipped = 0;
|
|
70
|
+
for (const filePath of files) {
|
|
71
|
+
const original = readFileSync(filePath, 'utf8');
|
|
72
|
+
const updated = fixLogs(original);
|
|
73
|
+
if (updated !== null) {
|
|
74
|
+
writeFileSync(filePath, updated, 'utf8');
|
|
75
|
+
process.stdout.write(` ${green('~')} ${filePath}\n`);
|
|
76
|
+
fixed++;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
skipped++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
process.stdout.write(`\n${green(`✔ Fixed ${fixed} file${fixed === 1 ? '' : 's'}.`)} ${dim(`(${skipped} already clean)`)}\n`);
|
|
83
|
+
if (fixed > 0) {
|
|
84
|
+
process.stdout.write(yellow(`\n⚠ Review the changes — Logger.info() accepts a string message and an optional context object.\n`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=fix-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-logs.js","sourceRoot":"","sources":["../../src/commands/fix-logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ──────────────────────────────────────────────────────────────────
|
|
3
|
+
* 🏢 Company Name: Bonifade Technologies
|
|
4
|
+
* 👨💻 Developer: Bowofade Oyerinde
|
|
5
|
+
* 🐙 GitHub: oyenet1
|
|
6
|
+
* 📅 Created Date: 2026-04-05
|
|
7
|
+
* 🔄 Updated Date: 2026-04-05
|
|
8
|
+
* ──────────────────────────────────────────────────────────────────
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* `vonosan jobs:run <name>` — executes a named cron job immediately.
|
|
12
|
+
*
|
|
13
|
+
* Discovers job files from `src/jobs/*.job.ts` and `src/modules/**\/*.job.ts`,
|
|
14
|
+
* then calls `runJobNow(name, jobs, db, config)`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runJobsRun(args: string[]): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4F9D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
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 { existsSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import fg from 'fast-glob';
|
|
13
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
14
|
+
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
15
|
+
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
16
|
+
// ─── jobs:run ─────────────────────────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* `vonosan jobs:run <name>` — executes a named cron job immediately.
|
|
19
|
+
*
|
|
20
|
+
* Discovers job files from `src/jobs/*.job.ts` and `src/modules/**\/*.job.ts`,
|
|
21
|
+
* then calls `runJobNow(name, jobs, db, config)`.
|
|
22
|
+
*/
|
|
23
|
+
export async function runJobsRun(args) {
|
|
24
|
+
const [name] = args;
|
|
25
|
+
if (!name) {
|
|
26
|
+
process.stderr.write(red('Usage: vonosan jobs:run <name>\n'));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
process.stdout.write(bold(`Running job "${name}" …\n`));
|
|
30
|
+
// Discover job files
|
|
31
|
+
const patterns = [
|
|
32
|
+
join(process.cwd(), 'src', 'jobs', '*.job.ts').replace(/\\/g, '/'),
|
|
33
|
+
join(process.cwd(), 'src', 'modules', '**', '*.job.ts').replace(/\\/g, '/'),
|
|
34
|
+
];
|
|
35
|
+
const jobFiles = await fg(patterns, { absolute: true });
|
|
36
|
+
if (jobFiles.length === 0) {
|
|
37
|
+
process.stderr.write(red('No job files found in src/jobs/ or src/modules/\n'));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
// Load all job definitions
|
|
41
|
+
const jobs = [];
|
|
42
|
+
for (const file of jobFiles) {
|
|
43
|
+
try {
|
|
44
|
+
const mod = await import(file);
|
|
45
|
+
for (const exported of Object.values(mod)) {
|
|
46
|
+
if (exported &&
|
|
47
|
+
typeof exported === 'object' &&
|
|
48
|
+
'name' in exported &&
|
|
49
|
+
'handler' in exported &&
|
|
50
|
+
typeof exported.handler === 'function') {
|
|
51
|
+
jobs.push(exported);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
process.stderr.write(red(`Failed to load job file: ${file}\n${String(err)}\n`));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const job = jobs.find((j) => j.name === name);
|
|
60
|
+
if (!job) {
|
|
61
|
+
const available = jobs.map((j) => j.name).join(', ');
|
|
62
|
+
process.stderr.write(red(`Job "${name}" not found.\n`));
|
|
63
|
+
if (available) {
|
|
64
|
+
process.stdout.write(`Available jobs: ${available}\n`);
|
|
65
|
+
}
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
// Load DB and config from the project's entry point
|
|
69
|
+
const envPath = join(process.cwd(), '.env');
|
|
70
|
+
if (existsSync(envPath)) {
|
|
71
|
+
// Load .env manually for CLI context
|
|
72
|
+
const { readFileSync } = await import('node:fs');
|
|
73
|
+
const envContent = readFileSync(envPath, 'utf8');
|
|
74
|
+
for (const line of envContent.split('\n')) {
|
|
75
|
+
const trimmed = line.trim();
|
|
76
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
77
|
+
continue;
|
|
78
|
+
const eqIdx = trimmed.indexOf('=');
|
|
79
|
+
if (eqIdx === -1)
|
|
80
|
+
continue;
|
|
81
|
+
const key = trimmed.slice(0, eqIdx).trim();
|
|
82
|
+
const value = trimmed.slice(eqIdx + 1).trim().replace(/^["']|["']$/g, '');
|
|
83
|
+
if (!process.env[key])
|
|
84
|
+
process.env[key] = value;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Minimal context for job execution
|
|
88
|
+
const ctx = {
|
|
89
|
+
db: null, // Jobs that need DB should handle null gracefully in CLI context
|
|
90
|
+
config: process.env,
|
|
91
|
+
logger: {
|
|
92
|
+
info: (msg, ctx) => process.stdout.write(`[info] ${msg} ${ctx ? JSON.stringify(ctx) : ''}\n`),
|
|
93
|
+
warn: (msg, ctx) => process.stdout.write(`[warn] ${msg} ${ctx ? JSON.stringify(ctx) : ''}\n`),
|
|
94
|
+
error: (msg, ctx) => process.stderr.write(`[error] ${msg} ${ctx ? JSON.stringify(ctx) : ''}\n`),
|
|
95
|
+
debug: (msg, ctx) => process.stdout.write(`[debug] ${msg} ${ctx ? JSON.stringify(ctx) : ''}\n`),
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
await job.handler(ctx);
|
|
100
|
+
process.stdout.write(green(`✔ Job "${name}" completed.\n`));
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
process.stderr.write(red(`✗ Job "${name}" failed: ${String(err)}\n`));
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE1B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAClD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAChD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAA;AAEhD,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAEnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAA;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,CAAC,CAAA;IAEvD,qBAAqB;IACrB,MAAM,QAAQ,GAAG;QACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;KAC5E,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,2BAA2B;IAC3B,MAAM,IAAI,GAAsE,EAAE,CAAA;IAElF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAA4B,CAAA;YACzD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1C,IACE,QAAQ;oBACR,OAAO,QAAQ,KAAK,QAAQ;oBAC5B,MAAM,IAAI,QAAQ;oBAClB,SAAS,IAAI,QAAQ;oBACrB,OAAQ,QAAiC,CAAC,OAAO,KAAK,UAAU,EAChE,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,QAAsE,CAAC,CAAA;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAA;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,SAAS,IAAI,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,oDAAoD;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,qCAAqC;QACrC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAChD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,SAAQ;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;YACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACjD,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,IAAI,EAAE,iEAAiE;QAC3E,MAAM,EAAE,OAAO,CAAC,GAAc;QAC9B,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,GAAW,EAAE,GAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YAC/G,IAAI,EAAE,CAAC,GAAW,EAAE,GAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YAC/G,KAAK,EAAE,CAAC,GAAW,EAAE,GAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACjH,KAAK,EAAE,CAAC,GAAW,EAAE,GAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;SAClH;KACF,CAAA;IAED,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,aAAa,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
* `vonosan lint` — scans src/ for all lint violations and prints a report.
|
|
12
|
+
* Exits with code 1 when violations are found.
|
|
13
|
+
*/
|
|
14
|
+
export declare function runLint(args: string[]): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3D"}
|
|
@@ -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
|
+
import { join } from 'node:path';
|
|
11
|
+
import { lintProject } from '../linter.js';
|
|
12
|
+
/** ANSI colour helpers */
|
|
13
|
+
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
14
|
+
const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
15
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
16
|
+
const dim = (s) => `\x1b[2m${s}\x1b[0m`;
|
|
17
|
+
function formatResults(results) {
|
|
18
|
+
if (results.length === 0) {
|
|
19
|
+
process.stdout.write(green('✔ No lint violations found.\n'));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Group by file
|
|
23
|
+
const byFile = new Map();
|
|
24
|
+
for (const r of results) {
|
|
25
|
+
const list = byFile.get(r.file) ?? [];
|
|
26
|
+
list.push(r);
|
|
27
|
+
byFile.set(r.file, list);
|
|
28
|
+
}
|
|
29
|
+
for (const [file, violations] of byFile) {
|
|
30
|
+
process.stdout.write(`\n${yellow(file)}\n`);
|
|
31
|
+
for (const v of violations) {
|
|
32
|
+
process.stdout.write(` ${dim(`${v.line}:`)} ${red(`[${v.rule}]`)} ${v.message}\n`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
process.stdout.write(`\n${red(`✖ ${results.length} violation${results.length === 1 ? '' : 's'} found.`)}\n`);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* `vonosan lint` — scans src/ for all lint violations and prints a report.
|
|
39
|
+
* Exits with code 1 when violations are found.
|
|
40
|
+
*/
|
|
41
|
+
export async function runLint(args) {
|
|
42
|
+
const srcDir = join(process.cwd(), args[0] ?? 'src');
|
|
43
|
+
process.stdout.write(`Linting ${srcDir} …\n`);
|
|
44
|
+
const results = await lintProject(srcDir);
|
|
45
|
+
formatResults(results);
|
|
46
|
+
if (results.length > 0)
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAA;AAE3D,0BAA0B;AAC1B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAChD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AACnD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAClD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAA;AAE/C,SAAS,aAAa,CAAC,OAAqB;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAA;QAC5D,OAAM;IACR,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CACvF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,MAAM,CAAC,CAAA;IAE7C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;IACzC,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -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
|
+
export declare function runMakeModule(args: string[]): Promise<void>;
|
|
11
|
+
export declare function runMakeVersion(args: string[]): Promise<void>;
|
|
12
|
+
export declare function runMakeService(args: string[]): Promise<void>;
|
|
13
|
+
export declare function runMakeController(args: string[]): Promise<void>;
|
|
14
|
+
export declare function runMakeDto(args: string[]): Promise<void>;
|
|
15
|
+
export declare function runMakeRoutes(args: string[]): Promise<void>;
|
|
16
|
+
export declare function runMakeSchema(args: string[]): Promise<void>;
|
|
17
|
+
export declare function runMakeMiddleware(args: string[]): Promise<void>;
|
|
18
|
+
export declare function runMakePage(args: string[]): Promise<void>;
|
|
19
|
+
export declare function runMakeComponent(args: string[]): Promise<void>;
|
|
20
|
+
export declare function runMakeComposable(args: string[]): Promise<void>;
|
|
21
|
+
export declare function runMakeStore(args: string[]): Promise<void>;
|
|
22
|
+
export declare function runMakeMigration(args: string[]): Promise<void>;
|
|
23
|
+
export declare function runMakeSeed(args: string[]): Promise<void>;
|
|
24
|
+
export declare function runMakeTest(args: string[]): Promise<void>;
|
|
25
|
+
export declare function runMakeNotification(args: string[]): Promise<void>;
|
|
26
|
+
export declare function runMakeResource(args: string[]): Promise<void>;
|
|
27
|
+
export declare function runMakePolicy(args: string[]): Promise<void>;
|
|
28
|
+
export declare function runMakeJob(args: string[]): Promise<void>;
|
|
29
|
+
export declare function runMakeEmail(args: string[]): Promise<void>;
|
|
30
|
+
export declare function runMakeHelper(args: string[]): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=make.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../src/commands/make.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyDH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjE;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsClE;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE"}
|
|
@@ -0,0 +1,176 @@
|
|
|
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 { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { generateModule, writeModule } from '../generators/module-generator.js';
|
|
13
|
+
import { generateService, generateController, generateDto, generateRoutes, generateSchema, generateMiddleware, generatePage, generateComponent, generateComposable, generateStore, generateMigration, generateSeed, generateTest, generateNotification, generateResource, generatePolicy, generateJob, generateEmail, generateHelper, toPascalCase, } from '../generators/file-generators.js';
|
|
14
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
15
|
+
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
16
|
+
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
17
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
18
|
+
function writeFile(relPath, content) {
|
|
19
|
+
const absPath = join(process.cwd(), relPath);
|
|
20
|
+
if (existsSync(absPath)) {
|
|
21
|
+
process.stderr.write(red(`File already exists: ${relPath} — skipping.\n`));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const dir = absPath.substring(0, absPath.lastIndexOf('/'));
|
|
25
|
+
mkdirSync(dir, { recursive: true });
|
|
26
|
+
writeFileSync(absPath, content, 'utf8');
|
|
27
|
+
process.stdout.write(green(` + ${relPath}\n`));
|
|
28
|
+
}
|
|
29
|
+
function requireName(args, usage) {
|
|
30
|
+
const [name] = args;
|
|
31
|
+
if (!name) {
|
|
32
|
+
process.stderr.write(red(`Usage: ${usage}\n`));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
return name;
|
|
36
|
+
}
|
|
37
|
+
// ─── make:module ─────────────────────────────────────────────────────────────
|
|
38
|
+
export async function runMakeModule(args) {
|
|
39
|
+
const name = requireName(args, 'vonosan make:module <name>');
|
|
40
|
+
const api = !args.includes('--no-api');
|
|
41
|
+
const frontend = args.includes('--frontend') || args.includes('--full-stack');
|
|
42
|
+
const saas = args.includes('--saas');
|
|
43
|
+
process.stdout.write(bold(`Generating module "${name}" …\n`));
|
|
44
|
+
const files = generateModule(name, { api, frontend, saas });
|
|
45
|
+
try {
|
|
46
|
+
writeModule(name, files);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
process.stderr.write(red(String(err) + '\n'));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
process.stdout.write(green(`\n✔ Module "${name}" generated with ${files.length} files.\n`));
|
|
53
|
+
}
|
|
54
|
+
// ─── make:version ────────────────────────────────────────────────────────────
|
|
55
|
+
export async function runMakeVersion(args) {
|
|
56
|
+
const version = requireName(args, 'vonosan make:version <v>');
|
|
57
|
+
const versionDir = `src/api/${version}`;
|
|
58
|
+
process.stdout.write(bold(`Generating API version namespace "${version}" …\n`));
|
|
59
|
+
const header = `/**
|
|
60
|
+
* ──────────────────────────────────────────────────────────────────
|
|
61
|
+
* 🏢 Company Name: Bonifade Technologies
|
|
62
|
+
* 👨💻 Developer: Bowofade Oyerinde
|
|
63
|
+
* 🐙 GitHub: oyenet1
|
|
64
|
+
* 📅 Created Date: ${new Date().toISOString().slice(0, 10)}
|
|
65
|
+
* 🔄 Updated Date: ${new Date().toISOString().slice(0, 10)}
|
|
66
|
+
* ──────────────────────────────────────────────────────────────────
|
|
67
|
+
*/`;
|
|
68
|
+
writeFile(`${versionDir}/index.ts`, `${header}
|
|
69
|
+
|
|
70
|
+
import { Hono } from 'hono'
|
|
71
|
+
import type { AppVariables } from 'vonosan/types'
|
|
72
|
+
import { autoRegisterRoutes } from 'vonosan/server'
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* API ${version} router.
|
|
76
|
+
* Add feature module routes here or use autoRegisterRoutes().
|
|
77
|
+
*/
|
|
78
|
+
const ${version}Router = new Hono<{ Variables: AppVariables }>()
|
|
79
|
+
|
|
80
|
+
autoRegisterRoutes(${version}Router)
|
|
81
|
+
|
|
82
|
+
export default ${version}Router
|
|
83
|
+
`);
|
|
84
|
+
process.stdout.write(green(`\n✔ API version "${version}" namespace created.\n`));
|
|
85
|
+
process.stdout.write(` Mount it in src/app.ts: app.route('/api/${version}', ${version}Router)\n`);
|
|
86
|
+
}
|
|
87
|
+
// ─── Individual make:* commands ───────────────────────────────────────────────
|
|
88
|
+
export async function runMakeService(args) {
|
|
89
|
+
const name = requireName(args, 'vonosan make:service <name>');
|
|
90
|
+
writeFile(`src/modules/${name}/${name}.service.ts`, generateService(name));
|
|
91
|
+
}
|
|
92
|
+
export async function runMakeController(args) {
|
|
93
|
+
const name = requireName(args, 'vonosan make:controller <name>');
|
|
94
|
+
writeFile(`src/modules/${name}/${name}.controller.ts`, generateController(name));
|
|
95
|
+
}
|
|
96
|
+
export async function runMakeDto(args) {
|
|
97
|
+
const name = requireName(args, 'vonosan make:dto <name>');
|
|
98
|
+
writeFile(`src/modules/${name}/${name}.dto.ts`, generateDto(name));
|
|
99
|
+
}
|
|
100
|
+
export async function runMakeRoutes(args) {
|
|
101
|
+
const name = requireName(args, 'vonosan make:routes <name>');
|
|
102
|
+
writeFile(`src/modules/${name}/${name}.routes.ts`, generateRoutes(name));
|
|
103
|
+
}
|
|
104
|
+
export async function runMakeSchema(args) {
|
|
105
|
+
const name = requireName(args, 'vonosan make:schema <name>');
|
|
106
|
+
const saas = args.includes('--saas');
|
|
107
|
+
writeFile(`src/modules/${name}/${name}.schema.ts`, generateSchema(name, saas));
|
|
108
|
+
}
|
|
109
|
+
export async function runMakeMiddleware(args) {
|
|
110
|
+
const name = requireName(args, 'vonosan make:middleware <name>');
|
|
111
|
+
writeFile(`src/modules/${name}/${name}.middleware.ts`, generateMiddleware(name));
|
|
112
|
+
}
|
|
113
|
+
export async function runMakePage(args) {
|
|
114
|
+
const name = requireName(args, 'vonosan make:page <module/PageName>');
|
|
115
|
+
// Support "module/PageName" or just "name"
|
|
116
|
+
const parts = name.split('/');
|
|
117
|
+
const moduleName = parts.length > 1 ? parts[0] : name;
|
|
118
|
+
const pageName = parts.length > 1 ? parts[1] : 'index';
|
|
119
|
+
writeFile(`src/modules/${moduleName}/${pageName}.page.vue`, generatePage(moduleName));
|
|
120
|
+
}
|
|
121
|
+
export async function runMakeComponent(args) {
|
|
122
|
+
const name = requireName(args, 'vonosan make:component <module/ComponentName>');
|
|
123
|
+
const parts = name.split('/');
|
|
124
|
+
const moduleName = parts.length > 1 ? parts[0] : name;
|
|
125
|
+
const componentName = parts.length > 1 ? parts[1] : toPascalCase(name);
|
|
126
|
+
writeFile(`src/modules/${moduleName}/components/${componentName}.vue`, generateComponent(moduleName));
|
|
127
|
+
}
|
|
128
|
+
export async function runMakeComposable(args) {
|
|
129
|
+
const name = requireName(args, 'vonosan make:composable <module/useComposable>');
|
|
130
|
+
const parts = name.split('/');
|
|
131
|
+
const moduleName = parts.length > 1 ? parts[0] : name;
|
|
132
|
+
const composableName = parts.length > 1 ? parts[1] : `use${toPascalCase(name)}`;
|
|
133
|
+
writeFile(`src/modules/${moduleName}/composables/${composableName}.ts`, generateComposable(moduleName));
|
|
134
|
+
}
|
|
135
|
+
export async function runMakeStore(args) {
|
|
136
|
+
const name = requireName(args, 'vonosan make:store <name>');
|
|
137
|
+
writeFile(`src/modules/${name}/stores/${name}.store.ts`, generateStore(name));
|
|
138
|
+
}
|
|
139
|
+
export async function runMakeMigration(args) {
|
|
140
|
+
const name = requireName(args, 'vonosan make:migration <name>');
|
|
141
|
+
const timestamp = Date.now();
|
|
142
|
+
writeFile(`src/db/migrations/${timestamp}_${name}.sql`, generateMigration(name));
|
|
143
|
+
}
|
|
144
|
+
export async function runMakeSeed(args) {
|
|
145
|
+
const name = requireName(args, 'vonosan make:seed <name>');
|
|
146
|
+
writeFile(`src/db/seeds/${name}.ts`, generateSeed(name));
|
|
147
|
+
}
|
|
148
|
+
export async function runMakeTest(args) {
|
|
149
|
+
const name = requireName(args, 'vonosan make:test <name>');
|
|
150
|
+
writeFile(`src/modules/${name}/tests/${name}.unit.test.ts`, generateTest(name));
|
|
151
|
+
}
|
|
152
|
+
export async function runMakeNotification(args) {
|
|
153
|
+
const name = requireName(args, 'vonosan make:notification <name>');
|
|
154
|
+
writeFile(`src/modules/${name}/notifications/${name}.notification.ts`, generateNotification(name));
|
|
155
|
+
}
|
|
156
|
+
export async function runMakeResource(args) {
|
|
157
|
+
const name = requireName(args, 'vonosan make:resource <name>');
|
|
158
|
+
writeFile(`src/modules/${name}/${name}.resource.ts`, generateResource(name));
|
|
159
|
+
}
|
|
160
|
+
export async function runMakePolicy(args) {
|
|
161
|
+
const name = requireName(args, 'vonosan make:policy <name>');
|
|
162
|
+
writeFile(`src/modules/${name}/${name}.policy.ts`, generatePolicy(name));
|
|
163
|
+
}
|
|
164
|
+
export async function runMakeJob(args) {
|
|
165
|
+
const name = requireName(args, 'vonosan make:job <name>');
|
|
166
|
+
writeFile(`src/jobs/${name}.job.ts`, generateJob(name));
|
|
167
|
+
}
|
|
168
|
+
export async function runMakeEmail(args) {
|
|
169
|
+
const name = requireName(args, 'vonosan make:email <name>');
|
|
170
|
+
writeFile(`src/emails/${name}.email.ts`, generateEmail(name));
|
|
171
|
+
}
|
|
172
|
+
export async function runMakeHelper(args) {
|
|
173
|
+
const name = requireName(args, 'vonosan make:helper <name>');
|
|
174
|
+
writeFile(`src/shared/utils/${name}.ts`, generateHelper(name));
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=make.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.js","sourceRoot":"","sources":["../../src/commands/make.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,kCAAkC,CAAA;AAEzC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAClD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAA;AAChD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAA;AAEhD,iFAAiF;AAEjF,SAAS,SAAS,CAAC,OAAe,EAAE,OAAe;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IAC5C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,OAAO,gBAAgB,CAAC,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,KAAa;IAChD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,OAAO,CAAC,CAAC,CAAA;IAE7D,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAE3D,IAAI,CAAC;QACH,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,oBAAoB,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,WAAW,OAAO,EAAE,CAAA;IAEvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,OAAO,OAAO,CAAC,CAAC,CAAA;IAE/E,MAAM,MAAM,GAAG;;;;;sBAKK,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;sBACrC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;IAEvD,CAAA;IAEF,SAAS,CACP,GAAG,UAAU,WAAW,EACxB,GAAG,MAAM;;;;;;;SAOJ,OAAO;;;QAGR,OAAO;;qBAEM,OAAO;;iBAEX,OAAO;CACvB,CACE,CAAA;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,OAAO,wBAAwB,CAAC,CAAC,CAAA;IAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,OAAO,MAAM,OAAO,WAAW,CAAC,CAAA;AACpG,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAA;IAC7D,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAA;IAChE,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,gBAAgB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IACzD,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC5D,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpC,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,YAAY,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAA;IAChE,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,gBAAgB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAA;IACrE,2CAA2C;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACtD,SAAS,CAAC,eAAe,UAAU,IAAI,QAAQ,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAA;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACtE,SAAS,CACP,eAAe,UAAU,eAAe,aAAa,MAAM,EAC3D,iBAAiB,CAAC,UAAU,CAAC,CAC9B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,gDAAgD,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;IAC/E,SAAS,CACP,eAAe,UAAU,gBAAgB,cAAc,KAAK,EAC5D,kBAAkB,CAAC,UAAU,CAAC,CAC/B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IAC3D,SAAS,CAAC,eAAe,IAAI,WAAW,IAAI,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,SAAS,CAAC,qBAAqB,SAAS,IAAI,IAAI,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAA;IAC1D,SAAS,CAAC,gBAAgB,IAAI,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAA;IAC1D,SAAS,CAAC,eAAe,IAAI,UAAU,IAAI,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAc;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAA;IAClE,SAAS,CACP,eAAe,IAAI,kBAAkB,IAAI,kBAAkB,EAC3D,oBAAoB,CAAC,IAAI,CAAC,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;IAC9D,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,cAAc,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC5D,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IACzD,SAAS,CAAC,YAAY,IAAI,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IAC3D,SAAS,CAAC,cAAc,IAAI,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;IAC5D,SAAS,CAAC,oBAAoB,IAAI,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAChE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
* `vonosan migrate:run` — applies all pending Drizzle migrations.
|
|
12
|
+
*/
|
|
13
|
+
export declare function runMigrateRun(_args: string[]): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* `vonosan migrate:rollback` — rolls back the last applied migration.
|
|
16
|
+
*
|
|
17
|
+
* Drizzle Kit does not have a native rollback command; we implement it by
|
|
18
|
+
* dropping the last entry from the drizzle migrations journal and re-running
|
|
19
|
+
* the remaining migrations. This is a best-effort approach — for production
|
|
20
|
+
* use, write explicit down-migration SQL.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runMigrateRollback(_args: string[]): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* `vonosan migrate:status` — shows the current migration status.
|
|
25
|
+
*/
|
|
26
|
+
export declare function runMigrateStatus(_args: string[]): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* `vonosan migrate:reset` — rolls back all migrations then re-runs them.
|
|
29
|
+
*/
|
|
30
|
+
export declare function runMigrateReset(_args: string[]): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* `vonosan migrate:fresh [--seed]`
|
|
33
|
+
*
|
|
34
|
+
* Drops all tables, re-runs all migrations, and optionally runs seeds.
|
|
35
|
+
*/
|
|
36
|
+
export declare function runMigrateFresh(args: string[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* `vonosan migrate:make <name>`
|
|
39
|
+
*
|
|
40
|
+
* Syncs the schema barrel first, then generates a new Drizzle migration.
|
|
41
|
+
*/
|
|
42
|
+
export declare function runMigrateMake(args: string[]): Promise<void>;
|
|
43
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlE;AAID;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvE;AAID;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAID;;GAEG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpE;AAID;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBnE;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAalE"}
|