@nest-extended/cli 0.0.2-beta-13 → 0.0.2-beta-15

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.
Files changed (56) hide show
  1. package/README.md +73 -9
  2. package/package.json +1 -1
  3. package/src/commands/generate-app.js +145 -30
  4. package/src/commands/generate-app.js.map +1 -1
  5. package/src/commands/generate-service.js +211 -13
  6. package/src/commands/generate-service.js.map +1 -1
  7. package/src/lib/generate-prisma-auth-services.d.ts +1 -0
  8. package/src/lib/generate-prisma-auth-services.js +38 -0
  9. package/src/lib/generate-prisma-auth-services.js.map +1 -0
  10. package/src/lib/update-app-module.d.ts +1 -1
  11. package/src/lib/update-app-module.js +3 -3
  12. package/src/lib/update-app-module.js.map +1 -1
  13. package/src/templates/controller.template.d.ts +1 -1
  14. package/src/templates/controller.template.js +2 -2
  15. package/src/templates/controller.template.js.map +1 -1
  16. package/src/templates/dto-class-validator.template.d.ts +1 -0
  17. package/src/templates/dto-class-validator.template.js +93 -0
  18. package/src/templates/dto-class-validator.template.js.map +1 -0
  19. package/src/templates/dto.template.js +19 -0
  20. package/src/templates/dto.template.js.map +1 -1
  21. package/src/templates/module.template.d.ts +1 -1
  22. package/src/templates/module.template.js +2 -2
  23. package/src/templates/module.template.js.map +1 -1
  24. package/src/templates/prisma-auth.template.d.ts +9 -0
  25. package/src/templates/prisma-auth.template.js +190 -0
  26. package/src/templates/prisma-auth.template.js.map +1 -0
  27. package/src/templates/prisma-controller.template.d.ts +1 -0
  28. package/src/templates/prisma-controller.template.js +53 -0
  29. package/src/templates/prisma-controller.template.js.map +1 -0
  30. package/src/templates/prisma-dto-class-validator.template.d.ts +1 -0
  31. package/src/templates/prisma-dto-class-validator.template.js +93 -0
  32. package/src/templates/prisma-dto-class-validator.template.js.map +1 -0
  33. package/src/templates/prisma-dto.template.d.ts +1 -0
  34. package/src/templates/prisma-dto.template.js +55 -0
  35. package/src/templates/prisma-dto.template.js.map +1 -0
  36. package/src/templates/prisma-model.template.d.ts +7 -0
  37. package/src/templates/prisma-model.template.js +27 -0
  38. package/src/templates/prisma-model.template.js.map +1 -0
  39. package/src/templates/prisma-module.template.d.ts +1 -0
  40. package/src/templates/prisma-module.template.js +18 -0
  41. package/src/templates/prisma-module.template.js.map +1 -0
  42. package/src/templates/prisma-service.template.d.ts +1 -0
  43. package/src/templates/prisma-service.template.js +15 -0
  44. package/src/templates/prisma-service.template.js.map +1 -0
  45. package/src/templates/prisma-setup.template.d.ts +6 -0
  46. package/src/templates/prisma-setup.template.js +34 -0
  47. package/src/templates/prisma-setup.template.js.map +1 -0
  48. package/src/templates/prisma-users.template.d.ts +8 -0
  49. package/src/templates/prisma-users.template.js +135 -0
  50. package/src/templates/prisma-users.template.js.map +1 -0
  51. package/src/templates/schema.template.d.ts +1 -1
  52. package/src/templates/schema.template.js +14 -6
  53. package/src/templates/schema.template.js.map +1 -1
  54. package/src/templates/service.template.d.ts +1 -1
  55. package/src/templates/service.template.js +2 -2
  56. package/src/templates/service.template.js.map +1 -1
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const chalk = require("chalk");
6
6
  const path = require("path");
7
7
  const fs = require("fs-extra");
8
+ const inquirer = require("inquirer");
8
9
  const child_process_1 = require("child_process");
9
10
  const create_file_1 = require("../lib/create-file");
10
11
  const update_app_module_1 = require("../lib/update-app-module");
@@ -12,30 +13,227 @@ const module_template_1 = require("../templates/module.template");
12
13
  const service_template_1 = require("../templates/service.template");
13
14
  const controller_template_1 = require("../templates/controller.template");
14
15
  const dto_template_1 = require("../templates/dto.template");
16
+ const dto_class_validator_template_1 = require("../templates/dto-class-validator.template");
15
17
  const schema_template_1 = require("../templates/schema.template");
16
18
  const service_spec_template_1 = require("../templates/service.spec.template");
17
19
  const controller_spec_template_1 = require("../templates/controller.spec.template");
20
+ const prisma_service_template_1 = require("../templates/prisma-service.template");
21
+ const prisma_module_template_1 = require("../templates/prisma-module.template");
22
+ const prisma_model_template_1 = require("../templates/prisma-model.template");
23
+ const prisma_controller_template_1 = require("../templates/prisma-controller.template");
24
+ const prisma_dto_template_1 = require("../templates/prisma-dto.template");
25
+ const prisma_dto_class_validator_template_1 = require("../templates/prisma-dto-class-validator.template");
26
+ const prisma_setup_template_1 = require("../templates/prisma-setup.template");
27
+ /**
28
+ * Detect the package manager used in the project.
29
+ */
30
+ const detectPackageManager = (projectDir) => {
31
+ if (fs.existsSync(path.join(projectDir, 'yarn.lock')))
32
+ return 'yarn';
33
+ if (fs.existsSync(path.join(projectDir, 'pnpm-lock.yaml')))
34
+ return 'pnpm';
35
+ return 'npm';
36
+ };
37
+ /**
38
+ * Check if a package is installed in node_modules.
39
+ */
40
+ const isPackageInstalled = (projectDir, packageName) => {
41
+ return fs.existsSync(path.join(projectDir, 'node_modules', packageName));
42
+ };
43
+ /**
44
+ * Install packages if they are not already installed.
45
+ */
46
+ const ensurePackagesInstalled = (projectDir, packages) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
47
+ const missing = packages.filter(pkg => !isPackageInstalled(projectDir, pkg));
48
+ if (missing.length === 0)
49
+ return;
50
+ const pkgManager = detectPackageManager(projectDir);
51
+ const installArgs = pkgManager === 'npm' ? ['install'] : ['add'];
52
+ console.log(chalk.blue(`Installing missing packages: ${missing.join(', ')}...`));
53
+ yield new Promise((resolve, reject) => {
54
+ const child = (0, child_process_1.spawn)(pkgManager, [...installArgs, ...missing], {
55
+ stdio: 'inherit',
56
+ cwd: projectDir,
57
+ shell: true,
58
+ });
59
+ child.on('close', (code) => {
60
+ if (code === 0)
61
+ resolve();
62
+ else
63
+ reject(new Error(`${pkgManager} install failed with code ${code}`));
64
+ });
65
+ });
66
+ console.log(chalk.green('Packages installed successfully!'));
67
+ });
68
+ /**
69
+ * Install dev dependencies if not already installed.
70
+ */
71
+ const ensureDevPackagesInstalled = (projectDir, packages) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
72
+ const missing = packages.filter(pkg => !isPackageInstalled(projectDir, pkg));
73
+ if (missing.length === 0)
74
+ return;
75
+ const pkgManager = detectPackageManager(projectDir);
76
+ const installArgs = pkgManager === 'npm' ? ['install', '-D'] : ['add', '-D'];
77
+ console.log(chalk.blue(`Installing missing dev packages: ${missing.join(', ')}...`));
78
+ yield new Promise((resolve, reject) => {
79
+ const child = (0, child_process_1.spawn)(pkgManager, [...installArgs, ...missing], {
80
+ stdio: 'inherit',
81
+ cwd: projectDir,
82
+ shell: true,
83
+ });
84
+ child.on('close', (code) => {
85
+ if (code === 0)
86
+ resolve();
87
+ else
88
+ reject(new Error(`${pkgManager} install failed with code ${code}`));
89
+ });
90
+ });
91
+ console.log(chalk.green('Dev packages installed successfully!'));
92
+ });
93
+ /**
94
+ * Ensure Prisma is initialized and PrismaModule/Service exist.
95
+ */
96
+ const ensurePrismaSetup = (projectDir, dbType) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
97
+ const prismaSchemaPath = path.join(projectDir, 'prisma/schema.prisma');
98
+ // Initialize Prisma if schema.prisma doesn't exist
99
+ if (!fs.existsSync(prismaSchemaPath)) {
100
+ let datasourceProvider = 'postgresql';
101
+ if (dbType === 'MySQL')
102
+ datasourceProvider = 'mysql';
103
+ else if (dbType === 'SQLite')
104
+ datasourceProvider = 'sqlite';
105
+ console.log(chalk.blue(`Initializing Prisma with ${datasourceProvider}...`));
106
+ yield new Promise((resolve, reject) => {
107
+ const child = (0, child_process_1.spawn)('npx', ['prisma', 'init', '--datasource-provider', datasourceProvider], {
108
+ stdio: 'inherit',
109
+ cwd: projectDir,
110
+ shell: true,
111
+ });
112
+ child.on('close', (code) => {
113
+ if (code === 0)
114
+ resolve();
115
+ else
116
+ reject(new Error(`prisma init failed with code ${code}`));
117
+ });
118
+ });
119
+ }
120
+ // Create PrismaService and PrismaModule if they don't exist
121
+ const prismaServicePath = path.join(projectDir, 'src/prisma/prisma.service.ts');
122
+ const prismaModulePath = path.join(projectDir, 'src/prisma/prisma.module.ts');
123
+ if (!fs.existsSync(prismaServicePath)) {
124
+ fs.ensureDirSync(path.join(projectDir, 'src/prisma'));
125
+ fs.writeFileSync(prismaServicePath, (0, prisma_setup_template_1.getPrismaServiceFile)());
126
+ console.log(chalk.green('Created src/prisma/prisma.service.ts'));
127
+ }
128
+ if (!fs.existsSync(prismaModulePath)) {
129
+ fs.writeFileSync(prismaModulePath, (0, prisma_setup_template_1.getPrismaModuleFile)());
130
+ console.log(chalk.green('Created src/prisma/prisma.module.ts'));
131
+ }
132
+ });
133
+ /**
134
+ * Append a Prisma model to schema.prisma if it doesn't already exist.
135
+ */
136
+ const appendPrismaModel = (projectDir, Name, isAuthGenerated) => {
137
+ const prismaSchemaPath = path.join(projectDir, 'prisma/schema.prisma');
138
+ if (!fs.existsSync(prismaSchemaPath)) {
139
+ console.warn(chalk.yellow('Warning: prisma/schema.prisma not found. Skipping model creation.'));
140
+ return;
141
+ }
142
+ const content = fs.readFileSync(prismaSchemaPath, 'utf8');
143
+ // Check if model already exists
144
+ if (content.includes(`model ${Name} {`)) {
145
+ console.log(chalk.yellow(`Model ${Name} already exists in schema.prisma`));
146
+ return;
147
+ }
148
+ const modelBlock = (0, prisma_model_template_1.getPrismaModel)(Name, isAuthGenerated);
149
+ fs.appendFileSync(prismaSchemaPath, '\n' + modelBlock);
150
+ console.log(chalk.green(`Added model ${Name} to prisma/schema.prisma`));
151
+ };
18
152
  const generateServiceAction = (rawName) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
153
+ const parts = rawName.split('/');
154
+ const rawBasename = parts.pop() || '';
155
+ const dirPath = parts.join('/');
19
156
  // if arg have '-' change to camelCase (Logic from original index.js)
20
- const argArray = rawName.split('-');
157
+ const argArray = rawBasename.split('-');
21
158
  argArray.forEach((arg, index) => {
22
159
  argArray[index] = arg[0].toUpperCase() + arg.slice(1).toLowerCase();
23
160
  });
24
161
  const Name = argArray.join(''); // PascalCase
25
162
  const name = Name[0].toLowerCase() + Name.slice(1); // camelCase
26
- console.log(`Generating service for: ${Name} (${name})`);
27
- const isAuthGenerated = fs.existsSync(path.join(process.cwd(), 'src/services/auth'));
28
- (0, create_file_1.createFileWithContent)(`src/schemas/${name}.schema.ts`, (0, schema_template_1.getSchema)(Name, 'Users', isAuthGenerated));
29
- (0, create_file_1.createFileWithContent)(`src/services/${name}/${name}.module.ts`, (0, module_template_1.getModule)(Name, name));
30
- (0, create_file_1.createFileWithContent)(`src/services/${name}/${name}.service.ts`, (0, service_template_1.getService)(Name, name));
31
- (0, create_file_1.createFileWithContent)(`src/services/${name}/${name}.controller.ts`, (0, controller_template_1.getController)(Name, name, rawName));
32
- (0, create_file_1.createFileWithContent)(`src/services/${name}/dto/${name}.dto.ts`, (0, dto_template_1.getDto)(Name));
33
- (0, create_file_1.createFileWithContent)(`src/services/${name}/${name}.service.spec.ts`, (0, service_spec_template_1.getServiceSpec)(Name, name));
34
- (0, create_file_1.createFileWithContent)(`src/services/${name}/${name}.controller.spec.ts`, (0, controller_spec_template_1.getControllerSpec)(Name, name));
35
- yield (0, update_app_module_1.updateAppModule)(Name, name);
36
- console.log(chalk.blue('Running lint...'));
163
+ const fullPath = dirPath ? `${dirPath}/${name}` : name;
164
+ const targetDir = `src/services/${fullPath}`;
165
+ // Ask user which database to use
166
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
+ // @ts-expect-error
168
+ const { databaseType } = yield inquirer.prompt([
169
+ {
170
+ type: 'list',
171
+ name: 'databaseType',
172
+ message: 'Which database would you like to use?',
173
+ choices: ['Mongoose', 'PostgreSQL', 'MySQL', 'SQLite'],
174
+ default: 'Mongoose',
175
+ },
176
+ ]);
177
+ // Ask user which validator to use
178
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
179
+ // @ts-expect-error
180
+ const { validatorType } = yield inquirer.prompt([
181
+ {
182
+ type: 'list',
183
+ name: 'validatorType',
184
+ message: 'Which validation library would you like to use?',
185
+ choices: ['zod', 'class-validator'],
186
+ default: 'zod',
187
+ },
188
+ ]);
37
189
  const projectDir = process.cwd();
38
- const pkgManager = fs.existsSync(path.join(projectDir, 'yarn.lock')) ? 'yarn' : 'npm';
190
+ const isPrisma = databaseType !== 'Mongoose';
191
+ // Ensure required validator packages are installed
192
+ if (validatorType === 'zod') {
193
+ yield ensurePackagesInstalled(projectDir, ['zod']);
194
+ }
195
+ else {
196
+ yield ensurePackagesInstalled(projectDir, ['class-validator', 'class-transformer']);
197
+ }
198
+ // Ensure database-specific packages are installed
199
+ if (isPrisma) {
200
+ yield ensurePackagesInstalled(projectDir, ['@prisma/client', '@nest-extended/prisma']);
201
+ yield ensureDevPackagesInstalled(projectDir, ['prisma']);
202
+ yield ensurePrismaSetup(projectDir, databaseType);
203
+ }
204
+ console.log(`Generating service for: ${Name} (${fullPath}) using ${databaseType}`);
205
+ const isAuthGenerated = fs.existsSync(path.join(projectDir, 'src/services/auth'));
206
+ if (isPrisma) {
207
+ // --- Prisma-based generation ---
208
+ // Generate DTO
209
+ const dtoContent = validatorType === 'zod' ? (0, prisma_dto_template_1.getPrismaDto)(Name) : (0, prisma_dto_class_validator_template_1.getPrismaDtoClassValidator)(Name);
210
+ // Append model to schema.prisma
211
+ appendPrismaModel(projectDir, Name, isAuthGenerated);
212
+ // Generate service files
213
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.module.ts`, (0, prisma_module_template_1.getPrismaModule)(Name, name));
214
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.service.ts`, (0, prisma_service_template_1.getPrismaService)(Name, name));
215
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.controller.ts`, (0, prisma_controller_template_1.getPrismaController)(Name, name, rawName));
216
+ (0, create_file_1.createFileWithContent)(`${targetDir}/dto/${name}.dto.ts`, dtoContent);
217
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.service.spec.ts`, (0, service_spec_template_1.getServiceSpec)(Name, name));
218
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.controller.spec.ts`, (0, controller_spec_template_1.getControllerSpec)(Name, name));
219
+ }
220
+ else {
221
+ // --- Mongoose-based generation (existing behavior) ---
222
+ // To compute depth for relative imports to src/schemas
223
+ const depth = dirPath ? dirPath.split('/').map(() => '../').join('') + '../../' : '../../';
224
+ // Generate the DTO based on validator selection
225
+ const dtoContent = validatorType === 'zod' ? (0, dto_template_1.getDto)(Name) : (0, dto_class_validator_template_1.getDtoClassValidator)(Name);
226
+ (0, create_file_1.createFileWithContent)(`src/schemas/${fullPath}.schema.ts`, (0, schema_template_1.getSchema)(Name, 'Users', isAuthGenerated, dirPath));
227
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.module.ts`, (0, module_template_1.getModule)(Name, name, fullPath, depth));
228
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.service.ts`, (0, service_template_1.getService)(Name, name, fullPath));
229
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.controller.ts`, (0, controller_template_1.getController)(Name, name, rawName, depth, fullPath));
230
+ (0, create_file_1.createFileWithContent)(`${targetDir}/dto/${name}.dto.ts`, dtoContent);
231
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.service.spec.ts`, (0, service_spec_template_1.getServiceSpec)(Name, name));
232
+ (0, create_file_1.createFileWithContent)(`${targetDir}/${name}.controller.spec.ts`, (0, controller_spec_template_1.getControllerSpec)(Name, name));
233
+ }
234
+ yield (0, update_app_module_1.updateAppModule)(Name, name, fullPath);
235
+ console.log(chalk.blue('Running lint...'));
236
+ const pkgManager = detectPackageManager(projectDir);
39
237
  yield new Promise((resolve) => {
40
238
  const lintChild = (0, child_process_1.spawn)(pkgManager, ['run', 'lint'], {
41
239
  stdio: 'inherit',
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service.js","sourceRoot":"","sources":["../../../../../packages/cli/src/commands/generate-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-service.js","sourceRoot":"","sources":["../../../../../packages/cli/src/commands/generate-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const generatePrismaAuthServices: (appDir: string) => void;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePrismaAuthServices = void 0;
4
+ const path = require("path");
5
+ const fs = require("fs-extra");
6
+ const prisma_auth_template_1 = require("../templates/prisma-auth.template");
7
+ const prisma_users_template_1 = require("../templates/prisma-users.template");
8
+ const prisma_dto_template_1 = require("../templates/prisma-dto.template");
9
+ const generatePrismaAuthServices = (appDir) => {
10
+ // 1. Generate Users Service
11
+ const usersDir = path.join(appDir, 'src/services/users');
12
+ fs.ensureDirSync(usersDir);
13
+ fs.writeFileSync(path.join(usersDir, 'users.module.ts'), (0, prisma_users_template_1.getPrismaUsersModule)());
14
+ fs.writeFileSync(path.join(usersDir, 'users.service.ts'), (0, prisma_users_template_1.getPrismaUsersService)());
15
+ fs.writeFileSync(path.join(usersDir, 'users.controller.ts'), (0, prisma_users_template_1.getPrismaUsersController)());
16
+ fs.ensureDirSync(path.join(usersDir, 'dto'));
17
+ fs.writeFileSync(path.join(usersDir, 'dto/users.dto.ts'), (0, prisma_dto_template_1.getPrismaDto)('Users'));
18
+ // 2. Append Users model to schema.prisma
19
+ const prismaSchemaPath = path.join(appDir, 'prisma/schema.prisma');
20
+ if (fs.existsSync(prismaSchemaPath)) {
21
+ const content = fs.readFileSync(prismaSchemaPath, 'utf8');
22
+ if (!content.includes('model Users {')) {
23
+ const usersModel = (0, prisma_users_template_1.getPrismaUsersModel)();
24
+ fs.appendFileSync(prismaSchemaPath, '\n' + usersModel);
25
+ }
26
+ }
27
+ // 3. Generate Auth Service
28
+ const authDir = path.join(appDir, 'src/services/auth');
29
+ fs.ensureDirSync(authDir);
30
+ fs.ensureDirSync(path.join(authDir, 'constants'));
31
+ fs.writeFileSync(path.join(authDir, 'auth.module.ts'), (0, prisma_auth_template_1.getPrismaAuthModule)());
32
+ fs.writeFileSync(path.join(authDir, 'auth.service.ts'), (0, prisma_auth_template_1.getPrismaAuthService)());
33
+ fs.writeFileSync(path.join(authDir, 'auth.controller.ts'), (0, prisma_auth_template_1.getPrismaAuthController)());
34
+ fs.writeFileSync(path.join(authDir, 'auth.guard.ts'), (0, prisma_auth_template_1.getPrismaAuthGuard)());
35
+ fs.writeFileSync(path.join(authDir, 'constants/jwt-constants.ts'), (0, prisma_auth_template_1.getPrismaJwtConstants)());
36
+ };
37
+ exports.generatePrismaAuthServices = generatePrismaAuthServices;
38
+ //# sourceMappingURL=generate-prisma-auth-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-prisma-auth-services.js","sourceRoot":"","sources":["../../../../../packages/cli/src/lib/generate-prisma-auth-services.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,+BAA+B;AAC/B,4EAM2C;AAC3C,8EAK4C;AAC5C,0EAAgE;AAEzD,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE;IACzD,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,IAAA,4CAAoB,GAAE,CAAC,CAAC;IACjF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,IAAA,6CAAqB,GAAE,CAAC,CAAC;IACnF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,IAAA,gDAAwB,GAAE,CAAC,CAAC;IACzF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,IAAA,kCAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,IAAA,2CAAmB,GAAE,CAAC;YACzC,EAAE,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAElD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,IAAA,0CAAmB,GAAE,CAAC,CAAC;IAC9E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,IAAA,2CAAoB,GAAE,CAAC,CAAC;IAChF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,IAAA,8CAAuB,GAAE,CAAC,CAAC;IACtF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,IAAA,yCAAkB,GAAE,CAAC,CAAC;IAC5E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC,EAAE,IAAA,4CAAqB,GAAE,CAAC,CAAC;AAChG,CAAC,CAAC;AA/BW,QAAA,0BAA0B,8BA+BrC"}
@@ -1 +1 @@
1
- export declare function updateAppModule(Name: string, name: string): Promise<void>;
1
+ export declare function updateAppModule(Name: string, name: string, fullPath?: string): Promise<void>;
@@ -5,8 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const fs = require("fs-extra");
6
6
  const path = require("path");
7
7
  const chalk = require("chalk");
8
- function updateAppModule(Name, name) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
+ function updateAppModule(Name_1, name_1) {
9
+ return tslib_1.__awaiter(this, arguments, void 0, function* (Name, name, fullPath = name) {
10
10
  const appModulePath = path.join(process.cwd(), 'src/app.module.ts');
11
11
  try {
12
12
  if (!fs.existsSync(appModulePath)) {
@@ -28,7 +28,7 @@ function updateAppModule(Name, name) {
28
28
  lastImportMatch = match;
29
29
  }
30
30
  // Create the new import statement
31
- const newImport = `import { ${Name}Module } from './services/${name}/${name}.module';`;
31
+ const newImport = `import { ${Name}Module } from './services/${fullPath}/${name}.module';`;
32
32
  if (lastImportMatch) {
33
33
  // Insert after the last service module import
34
34
  const insertPosition = lastImportMatch.index + lastImportMatch[0].length;
@@ -1 +1 @@
1
- {"version":3,"file":"update-app-module.js","sourceRoot":"","sources":["../../../../../packages/cli/src/lib/update-app-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-app-module.js","sourceRoot":"","sources":["../../../../../packages/cli/src/lib/update-app-module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const getController: (Name: string, name: string, url: string) => string;
1
+ export declare const getController: (Name: string, name: string, url: string, depth?: string, fullPath?: string) => string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getController = void 0;
4
- const getController = (Name, name, url) => `import {
4
+ const getController = (Name, name, url, depth = '../../', fullPath = name) => `import {
5
5
  Controller,
6
6
  Delete,
7
7
  Get,
@@ -12,7 +12,7 @@ const getController = (Name, name, url) => `import {
12
12
  } from '@nestjs/common';
13
13
  import { ${Name}Service } from './${name}.service';
14
14
  import { User, ModifyBody, setCreatedBy } from '@nest-extended/decorators';
15
- import { ${Name} } from '../../schemas/${name}.schema';
15
+ import { ${Name} } from '${depth}schemas/${fullPath}.schema';
16
16
 
17
17
  @Controller('${url}')
18
18
  export class ${Name}Controller {
@@ -1 +1 @@
1
- {"version":3,"file":"controller.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/controller.template.ts"],"names":[],"mappings":";;;AACO,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAU,EAAE,CAAC;;;;;;;;;WASvE,IAAI,qBAAqB,IAAI;;WAE7B,IAAI,0BAA0B,IAAI;;eAE9B,GAAG;eACH,IAAI;iCACc,IAAI,YAAY,IAAI;;;;wBAI7B,IAAI;;;;;wBAKJ,IAAI;;;;;wCAKY,IAAI,QAAQ,IAAI;;wBAEhC,IAAI,yBAAyB,IAAI;;;;;;kDAMP,IAAI,gBAAgB,IAAI;;;wBAGlD,IAAI,2BAA2B,IAAI;;;;;wBAKnC,IAAI;;;CAG3B,CAAC;AAhDW,QAAA,aAAa,iBAgDxB"}
1
+ {"version":3,"file":"controller.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/controller.template.ts"],"names":[],"mappings":";;;AACO,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,QAAgB,QAAQ,EAAE,WAAmB,IAAI,EAAU,EAAE,CAAC;;;;;;;;;WAS1H,IAAI,qBAAqB,IAAI;;WAE7B,IAAI,YAAY,KAAK,WAAW,QAAQ;;eAEpC,GAAG;eACH,IAAI;iCACc,IAAI,YAAY,IAAI;;;;wBAI7B,IAAI;;;;;wBAKJ,IAAI;;;;;wCAKY,IAAI,QAAQ,IAAI;;wBAEhC,IAAI,yBAAyB,IAAI;;;;;;kDAMP,IAAI,gBAAgB,IAAI;;;wBAGlD,IAAI,2BAA2B,IAAI;;;;;wBAKnC,IAAI;;;CAG3B,CAAC;AAhDW,QAAA,aAAa,iBAgDxB"}
@@ -0,0 +1 @@
1
+ export declare const getDtoClassValidator: (Name: string) => string;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDtoClassValidator = void 0;
4
+ const getDtoClassValidator = (Name) => `import { IsString, IsOptional, IsBoolean, IsDate, IsMongoId } from 'class-validator';
5
+ import { Type } from 'class-transformer';
6
+
7
+ /**
8
+ * Usage: To enable class-validator validation, add the following to your main.ts:
9
+ *
10
+ * import { ValidationPipe } from '@nestjs/common';
11
+ * app.useGlobalPipes(new ValidationPipe({ transform: true, whitelist: true }));
12
+ *
13
+ * Or apply per-route using @UsePipes(new ValidationPipe({ transform: true }))
14
+ */
15
+
16
+ export class Create${Name}Dto {
17
+ @IsString()
18
+ @IsOptional()
19
+ name?: string;
20
+
21
+ @IsMongoId()
22
+ @IsOptional()
23
+ createdBy?: string;
24
+
25
+ @IsDate()
26
+ @IsOptional()
27
+ @Type(() => Date)
28
+ createdAt?: Date;
29
+
30
+ @IsDate()
31
+ @IsOptional()
32
+ @Type(() => Date)
33
+ updatedAt?: Date;
34
+
35
+ @IsBoolean()
36
+ @IsOptional()
37
+ deleted?: boolean;
38
+
39
+ @IsMongoId()
40
+ @IsOptional()
41
+ deletedBy?: string;
42
+
43
+ @IsDate()
44
+ @IsOptional()
45
+ @Type(() => Date)
46
+ deletedAt?: Date;
47
+ }
48
+
49
+ export class Patch${Name}Dto {
50
+ @IsString()
51
+ @IsOptional()
52
+ name?: string;
53
+
54
+ @IsDate()
55
+ @IsOptional()
56
+ @Type(() => Date)
57
+ updatedAt?: Date;
58
+
59
+ @IsDate()
60
+ @IsOptional()
61
+ @Type(() => Date)
62
+ createdAt?: Date;
63
+
64
+ @IsBoolean()
65
+ @IsOptional()
66
+ deleted?: boolean;
67
+
68
+ @IsMongoId()
69
+ @IsOptional()
70
+ deletedBy?: string;
71
+
72
+ @IsDate()
73
+ @IsOptional()
74
+ @Type(() => Date)
75
+ deletedAt?: Date;
76
+ }
77
+
78
+ export class Remove${Name}Dto {
79
+ @IsMongoId()
80
+ id: string;
81
+
82
+ @IsMongoId()
83
+ @IsOptional()
84
+ deletedBy?: string;
85
+
86
+ @IsDate()
87
+ @IsOptional()
88
+ @Type(() => Date)
89
+ deletedAt?: Date;
90
+ }
91
+ `;
92
+ exports.getDtoClassValidator = getDtoClassValidator;
93
+ //# sourceMappingURL=dto-class-validator.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto-class-validator.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/dto-class-validator.template.ts"],"names":[],"mappings":";;;AACO,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC;;;;;;;;;;;;qBAYzC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAiCL,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6BH,IAAI;;;;;;;;;;;;;CAaxB,CAAC;AAvFW,QAAA,oBAAoB,wBAuF/B"}
@@ -4,6 +4,25 @@ exports.getDto = void 0;
4
4
  const getDto = (Name) => `import { z } from 'zod';
5
5
  import { Types } from 'mongoose';
6
6
 
7
+ /**
8
+ * Usage: To enable Zod validation, create a ZodValidationPipe and apply it globally or per-route.
9
+ *
10
+ * // zod-validation.pipe.ts
11
+ * import { PipeTransform, BadRequestException } from '@nestjs/common';
12
+ * import { ZodSchema } from 'zod';
13
+ * export class ZodValidationPipe implements PipeTransform {
14
+ * constructor(private schema: ZodSchema) {}
15
+ * transform(value: unknown) {
16
+ * const result = this.schema.safeParse(value);
17
+ * if (!result.success) throw new BadRequestException(result.error);
18
+ * return result.data;
19
+ * }
20
+ * }
21
+ *
22
+ * // Then in your controller:
23
+ * @UsePipes(new ZodValidationPipe(Create${Name}Validation))
24
+ */
25
+
7
26
  export const Create${Name}Validation = z.object({
8
27
  name: z.string().optional(),
9
28
  createdBy: z
@@ -1 +1 @@
1
- {"version":3,"file":"dto.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/dto.template.ts"],"names":[],"mappings":";;;AACO,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC;;;qBAG3B,IAAI;;;;;;;;;;;;;;;;;;;;oBAoBL,IAAI;;;;;;;;;;;;;;qBAcH,IAAI;;;;;;;;;;;;;oBAaL,IAAI,8BAA8B,IAAI;mBACvC,IAAI,6BAA6B,IAAI;oBACpC,IAAI,8BAA8B,IAAI;CACzD,CAAC;AArDW,QAAA,MAAM,UAqDjB"}
1
+ {"version":3,"file":"dto.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/dto.template.ts"],"names":[],"mappings":";;;AACO,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;6CAmBH,IAAI;;;qBAG5B,IAAI;;;;;;;;;;;;;;;;;;;;oBAoBL,IAAI;;;;;;;;;;;;;;qBAcH,IAAI;;;;;;;;;;;;;oBAaL,IAAI,8BAA8B,IAAI;mBACvC,IAAI,6BAA6B,IAAI;oBACpC,IAAI,8BAA8B,IAAI;CACzD,CAAC;AAxEW,QAAA,MAAM,UAwEjB"}
@@ -1 +1 @@
1
- export declare const getModule: (Name: string, name: string) => string;
1
+ export declare const getModule: (Name: string, name: string, fullPath?: string, depth?: string) => string;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getModule = void 0;
4
- const getModule = (Name, name) => `import { Module } from '@nestjs/common';
4
+ const getModule = (Name, name, fullPath = name, depth = '../../') => `import { Module } from '@nestjs/common';
5
5
  import { MongooseModule } from '@nestjs/mongoose';
6
6
  import { ${Name}Controller } from './${name}.controller';
7
7
  import { ${Name}Service } from './${name}.service';
8
- import { ${Name}, ${Name}Schema } from '../../schemas/${name}.schema';
8
+ import { ${Name}, ${Name}Schema } from '${depth}schemas/${fullPath}.schema';
9
9
 
10
10
  @Module({
11
11
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/module.template.ts"],"names":[],"mappings":";;;AACO,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE,CAAC;;WAEtD,IAAI,wBAAwB,IAAI;WAChC,IAAI,qBAAqB,IAAI;WAC7B,IAAI,KAAK,IAAI,gCAAgC,IAAI;;;;yCAInB,IAAI,kBAAkB,IAAI;;kBAEjD,IAAI;;MAEhB,IAAI;;cAEI,IAAI;;eAEH,IAAI;CAClB,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
1
+ {"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../../packages/cli/src/templates/module.template.ts"],"names":[],"mappings":";;;AACO,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,WAAmB,IAAI,EAAE,QAAgB,QAAQ,EAAU,EAAE,CAAC;;WAEzG,IAAI,wBAAwB,IAAI;WAChC,IAAI,qBAAqB,IAAI;WAC7B,IAAI,KAAK,IAAI,kBAAkB,KAAK,WAAW,QAAQ;;;;yCAIzB,IAAI,kBAAkB,IAAI;;kBAEjD,IAAI;;MAEhB,IAAI;;cAEI,IAAI;;eAEH,IAAI;CAClB,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Prisma-compatible auth templates.
3
+ * Same functionality as the Mongoose auth templates but using Prisma.
4
+ */
5
+ export declare const getPrismaAuthController: () => string;
6
+ export declare const getPrismaAuthService: () => string;
7
+ export declare const getPrismaAuthModule: () => string;
8
+ export declare const getPrismaAuthGuard: () => string;
9
+ export declare const getPrismaJwtConstants: () => string;