@nyalajs/cli 1.0.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/bin/nyala.d.ts +3 -0
- package/dist/bin/nyala.d.ts.map +1 -0
- package/dist/bin/nyala.js +190 -0
- package/dist/bin/nyala.js.map +1 -0
- package/dist/commands/generate.command.d.ts +63 -0
- package/dist/commands/generate.command.d.ts.map +1 -0
- package/dist/commands/generate.command.js +554 -0
- package/dist/commands/generate.command.js.map +1 -0
- package/dist/commands/migrate.command.d.ts +15 -0
- package/dist/commands/migrate.command.d.ts.map +1 -0
- package/dist/commands/migrate.command.js +179 -0
- package/dist/commands/migrate.command.js.map +1 -0
- package/dist/commands/new.command.d.ts +19 -0
- package/dist/commands/new.command.d.ts.map +1 -0
- package/dist/commands/new.command.helpers.d.ts +6 -0
- package/dist/commands/new.command.helpers.d.ts.map +1 -0
- package/dist/commands/new.command.helpers.js +92 -0
- package/dist/commands/new.command.helpers.js.map +1 -0
- package/dist/commands/new.command.js +515 -0
- package/dist/commands/new.command.js.map +1 -0
- package/dist/commands/seed.command.d.ts +15 -0
- package/dist/commands/seed.command.d.ts.map +1 -0
- package/dist/commands/seed.command.js +144 -0
- package/dist/commands/seed.command.js.map +1 -0
- package/dist/commands/validate.command.d.ts +7 -0
- package/dist/commands/validate.command.d.ts.map +1 -0
- package/dist/commands/validate.command.js +127 -0
- package/dist/commands/validate.command.js.map +1 -0
- package/dist/utils/banner.d.ts +5 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +174 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/naming.d.ts +4 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/dist/utils/naming.js +33 -0
- package/dist/utils/naming.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nyala.d.ts","sourceRoot":"","sources":["../../src/bin/nyala.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const new_command_1 = require("../commands/new.command");
|
|
7
|
+
const generate_command_1 = require("../commands/generate.command");
|
|
8
|
+
const validate_command_1 = require("../commands/validate.command");
|
|
9
|
+
const migrate_command_1 = require("../commands/migrate.command");
|
|
10
|
+
const seed_command_1 = require("../commands/seed.command");
|
|
11
|
+
const banner_1 = require("../utils/banner");
|
|
12
|
+
// Print the Nyala 3D logo banner on every CLI invocation
|
|
13
|
+
(0, banner_1.printBanner)();
|
|
14
|
+
const program = new commander_1.Command();
|
|
15
|
+
program
|
|
16
|
+
.name("nyala")
|
|
17
|
+
.description("Nyala Framework CLI")
|
|
18
|
+
.version("0.1.0");
|
|
19
|
+
// New command
|
|
20
|
+
program
|
|
21
|
+
.command("new [name]")
|
|
22
|
+
.description("Generate a new Nyala application")
|
|
23
|
+
.option("-t, --template <template>", "Template to use (mvc, saas, basic)", "mvc")
|
|
24
|
+
.option("-d, --database <driver>", "Database driver (postgres, mysql, sqlite)", "postgres")
|
|
25
|
+
.action(async (name, options) => {
|
|
26
|
+
const cmd = new new_command_1.NewCommand();
|
|
27
|
+
await cmd.execute(name, options);
|
|
28
|
+
});
|
|
29
|
+
// Generate command — artifact types per docs/requirements.md §4.23
|
|
30
|
+
const generate = program
|
|
31
|
+
.command("generate")
|
|
32
|
+
.alias("g")
|
|
33
|
+
.description("Generate framework artifacts");
|
|
34
|
+
generate
|
|
35
|
+
.command("controller <name>")
|
|
36
|
+
.description("Generate a new controller in app/controllers")
|
|
37
|
+
.action(async (name) => {
|
|
38
|
+
await new generate_command_1.GenerateCommand().generateController(name);
|
|
39
|
+
});
|
|
40
|
+
generate
|
|
41
|
+
.command("model <name>")
|
|
42
|
+
.description("Generate a new model in app/models")
|
|
43
|
+
.action(async (name) => {
|
|
44
|
+
await new generate_command_1.GenerateCommand().generateModel(name);
|
|
45
|
+
});
|
|
46
|
+
generate
|
|
47
|
+
.command("migration <name>")
|
|
48
|
+
.description("Generate a new migration in database/migrations")
|
|
49
|
+
.action(async (name) => {
|
|
50
|
+
await new generate_command_1.GenerateCommand().generateMigration(name);
|
|
51
|
+
});
|
|
52
|
+
generate
|
|
53
|
+
.command("service <name>")
|
|
54
|
+
.description("Generate a new service in app/services")
|
|
55
|
+
.action(async (name) => {
|
|
56
|
+
await new generate_command_1.GenerateCommand().generateService(name);
|
|
57
|
+
});
|
|
58
|
+
generate
|
|
59
|
+
.command("repository <name>")
|
|
60
|
+
.description("Generate a new repository in app/repositories")
|
|
61
|
+
.action(async (name) => {
|
|
62
|
+
await new generate_command_1.GenerateCommand().generateRepository(name);
|
|
63
|
+
});
|
|
64
|
+
generate
|
|
65
|
+
.command("request <name>")
|
|
66
|
+
.description("Generate a new request DTO in app/requests")
|
|
67
|
+
.action(async (name) => {
|
|
68
|
+
await new generate_command_1.GenerateCommand().generateRequest(name);
|
|
69
|
+
});
|
|
70
|
+
generate
|
|
71
|
+
.command("policy <name>")
|
|
72
|
+
.description("Generate a new policy in app/policies")
|
|
73
|
+
.action(async (name) => {
|
|
74
|
+
await new generate_command_1.GenerateCommand().generatePolicy(name);
|
|
75
|
+
});
|
|
76
|
+
generate
|
|
77
|
+
.command("middleware <name>")
|
|
78
|
+
.description("Generate a new middleware in app/middleware")
|
|
79
|
+
.action(async (name) => {
|
|
80
|
+
await new generate_command_1.GenerateCommand().generateMiddleware(name);
|
|
81
|
+
});
|
|
82
|
+
generate
|
|
83
|
+
.command("event <name>")
|
|
84
|
+
.description("Generate a new event in app/events")
|
|
85
|
+
.action(async (name) => {
|
|
86
|
+
await new generate_command_1.GenerateCommand().generateEvent(name);
|
|
87
|
+
});
|
|
88
|
+
generate
|
|
89
|
+
.command("listener <name>")
|
|
90
|
+
.description("Generate a new listener in app/listeners")
|
|
91
|
+
.action(async (name) => {
|
|
92
|
+
await new generate_command_1.GenerateCommand().generateListener(name);
|
|
93
|
+
});
|
|
94
|
+
generate
|
|
95
|
+
.command("job <name>")
|
|
96
|
+
.description("Generate a new job in app/jobs")
|
|
97
|
+
.action(async (name) => {
|
|
98
|
+
await new generate_command_1.GenerateCommand().generateJob(name);
|
|
99
|
+
});
|
|
100
|
+
generate
|
|
101
|
+
.command("resource <name>")
|
|
102
|
+
.description("Generate a new resource in app/resources")
|
|
103
|
+
.action(async (name) => {
|
|
104
|
+
await new generate_command_1.GenerateCommand().generateResource(name);
|
|
105
|
+
});
|
|
106
|
+
generate
|
|
107
|
+
.command("plugin <name>")
|
|
108
|
+
.description("Generate a new plugin in plugins/")
|
|
109
|
+
.action(async (name) => {
|
|
110
|
+
await new generate_command_1.GenerateCommand().generatePlugin(name);
|
|
111
|
+
});
|
|
112
|
+
generate
|
|
113
|
+
.command("seeder <name>")
|
|
114
|
+
.description("Generate a new database seeder in database/seeders")
|
|
115
|
+
.action(async (name) => {
|
|
116
|
+
await new generate_command_1.GenerateCommand().generateSeeder(name);
|
|
117
|
+
});
|
|
118
|
+
generate
|
|
119
|
+
.command("factory <name>")
|
|
120
|
+
.description("Generate a new database factory in database/factories")
|
|
121
|
+
.action(async (name) => {
|
|
122
|
+
await new generate_command_1.GenerateCommand().generateFactory(name);
|
|
123
|
+
});
|
|
124
|
+
// Validate command
|
|
125
|
+
program
|
|
126
|
+
.command("validate")
|
|
127
|
+
.description("Validate application architecture")
|
|
128
|
+
.action(async () => {
|
|
129
|
+
const cmd = new validate_command_1.ValidateCommand();
|
|
130
|
+
await cmd.execute();
|
|
131
|
+
});
|
|
132
|
+
// Dev command
|
|
133
|
+
program
|
|
134
|
+
.command("dev")
|
|
135
|
+
.description("Start the application in development mode with hot-reload")
|
|
136
|
+
.action(() => {
|
|
137
|
+
console.log("Starting Nyala development server...\n");
|
|
138
|
+
const result = (0, child_process_1.spawnSync)("npx", ["nodemon", "--exec", "ts-node", "bootstrap/main.ts"], {
|
|
139
|
+
stdio: "inherit",
|
|
140
|
+
});
|
|
141
|
+
if (result.error) {
|
|
142
|
+
console.error("Failed to start dev server:", result.error.message);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
process.exit(result.status ?? 0);
|
|
146
|
+
});
|
|
147
|
+
program
|
|
148
|
+
.command("db:migrate")
|
|
149
|
+
.description("Run pending database migrations (Drizzle ORM)")
|
|
150
|
+
.option("--seed", "Run seeders after migrating")
|
|
151
|
+
.action(async (options) => {
|
|
152
|
+
const command = new migrate_command_1.MigrateCommand();
|
|
153
|
+
await command.handle({ seed: options.seed });
|
|
154
|
+
});
|
|
155
|
+
program
|
|
156
|
+
.command("db:fresh")
|
|
157
|
+
.description("Drop the entire schema, re-run all migrations, and optionally seed")
|
|
158
|
+
.option("--seed", "Run seeders after migrating")
|
|
159
|
+
.action(async () => {
|
|
160
|
+
const command = new migrate_command_1.MigrateCommand();
|
|
161
|
+
await command.fresh();
|
|
162
|
+
});
|
|
163
|
+
program
|
|
164
|
+
.command("db:seed")
|
|
165
|
+
.description("Run database seeders from database/seeders/")
|
|
166
|
+
.option("--class <name>", "Only run the named seeder (partial match)")
|
|
167
|
+
.action(async (options) => {
|
|
168
|
+
const command = new seed_command_1.SeedCommand();
|
|
169
|
+
await command.handle({ class: options.class });
|
|
170
|
+
});
|
|
171
|
+
program
|
|
172
|
+
.command("build")
|
|
173
|
+
.description("Build the application for production (tsc → dist/)")
|
|
174
|
+
.option("--out-dir <dir>", "Output directory", "dist")
|
|
175
|
+
.action((options) => {
|
|
176
|
+
console.log("Building Nyala application...\n");
|
|
177
|
+
const result = (0, child_process_1.spawnSync)("npx", ["tsc", "--outDir", options.outDir, "--skipLibCheck"], {
|
|
178
|
+
stdio: "inherit",
|
|
179
|
+
});
|
|
180
|
+
if (result.error) {
|
|
181
|
+
console.error("Build failed:", result.error.message);
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
if (result.status === 0) {
|
|
185
|
+
console.log(`\n✔ Build complete → ${options.outDir}/`);
|
|
186
|
+
}
|
|
187
|
+
process.exit(result.status ?? 0);
|
|
188
|
+
});
|
|
189
|
+
program.parse(process.argv);
|
|
190
|
+
//# sourceMappingURL=nyala.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nyala.js","sourceRoot":"","sources":["../../src/bin/nyala.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generators for the artifact types listed in docs/requirements.md §4.23 /
|
|
3
|
+
* the source SRS §7 "Code Generation". Every generator writes into the
|
|
4
|
+
* app/<type> convention scaffolded by `nyala new` (see new.command.ts).
|
|
5
|
+
*
|
|
6
|
+
* Names may be passed with or without the conventional suffix — both
|
|
7
|
+
* `nyala generate policy User` and `nyala generate policy UserPolicy`
|
|
8
|
+
* produce `app/policies/user.policy.ts` exporting `UserPolicy`.
|
|
9
|
+
*
|
|
10
|
+
* Some artifact types (model, migration, repository, request, event,
|
|
11
|
+
* listener, job, plugin) depend on framework subsystems that don't exist
|
|
12
|
+
* yet (ORM, validation engine, event bus, queue, plugin loader — see
|
|
13
|
+
* docs/requirements.md §4.6/§4.8-4.10/§4.14-16/§5). Those generators still
|
|
14
|
+
* write a real file in the right place so the CLI surface matches the SRS,
|
|
15
|
+
* but the template is a clearly-marked stub rather than working code.
|
|
16
|
+
*/
|
|
17
|
+
export declare class GenerateCommand {
|
|
18
|
+
generateController(name: string): Promise<void>;
|
|
19
|
+
generateService(name: string): Promise<void>;
|
|
20
|
+
generateModel(name: string): Promise<void>;
|
|
21
|
+
generateMigration(name: string): Promise<void>;
|
|
22
|
+
generateRepository(name: string): Promise<void>;
|
|
23
|
+
generateRequest(name: string): Promise<void>;
|
|
24
|
+
generatePolicy(name: string): Promise<void>;
|
|
25
|
+
generateMiddleware(name: string): Promise<void>;
|
|
26
|
+
generateEvent(name: string): Promise<void>;
|
|
27
|
+
generateListener(name: string): Promise<void>;
|
|
28
|
+
generateJob(name: string): Promise<void>;
|
|
29
|
+
generateResource(name: string): Promise<void>;
|
|
30
|
+
generateSeeder(name: string): Promise<void>;
|
|
31
|
+
generateFactory(name: string): Promise<void>;
|
|
32
|
+
generateDto(name: string): Promise<void>;
|
|
33
|
+
generatePlugin(name: string): Promise<void>;
|
|
34
|
+
private specs;
|
|
35
|
+
/**
|
|
36
|
+
* Strips a conventional suffix if the caller already included it, so
|
|
37
|
+
* `policy User` and `policy UserPolicy` both yield `UserPolicy` / `user`
|
|
38
|
+
* instead of stuttering to `UserPolicyPolicy`.
|
|
39
|
+
*/
|
|
40
|
+
private normalizeName;
|
|
41
|
+
private writeArtifact;
|
|
42
|
+
private generateAndRegister;
|
|
43
|
+
/** Best-effort: appends the import + array entry to bootstrap/app.module.ts. */
|
|
44
|
+
private registerInAppModule;
|
|
45
|
+
private timestamp;
|
|
46
|
+
private getControllerTemplate;
|
|
47
|
+
private getServiceTemplate;
|
|
48
|
+
private getModelTemplate;
|
|
49
|
+
private getMigrationTemplate;
|
|
50
|
+
private getRepositoryTemplate;
|
|
51
|
+
private getRequestTemplate;
|
|
52
|
+
private getPolicyTemplate;
|
|
53
|
+
private getMiddlewareTemplate;
|
|
54
|
+
private getEventTemplate;
|
|
55
|
+
private getListenerTemplate;
|
|
56
|
+
private getJobTemplate;
|
|
57
|
+
private getResourceTemplate;
|
|
58
|
+
private getPluginTemplate;
|
|
59
|
+
private getSeederTemplate;
|
|
60
|
+
private getFactoryTemplate;
|
|
61
|
+
private getDtoTemplate;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=generate.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.command.d.ts","sourceRoot":"","sources":["../../src/commands/generate.command.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAClB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBjD,OAAO,CAAC,KAAK,CAqFX;IAIF;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAWP,aAAa;YAkBb,mBAAmB;IAwBjC,gFAAgF;YAClE,mBAAmB;IAsCjC,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,cAAc;CAMzB"}
|