@devstroupe/devkit-cli 1.1.11 → 1.1.12
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/index.js +55 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -672,6 +672,10 @@ export const routes: Routes = [
|
|
|
672
672
|
}
|
|
673
673
|
console.log('[Roteamento] app.entity-routes.ts sincronizado com as entidades ativas.');
|
|
674
674
|
updateMainLayoutNavigation(frontendRoot, activeEntities, config.layout?.navigation);
|
|
675
|
+
// Atualizar permissões no backend (seed) e frontend (componente de gerenciamento de perfis)
|
|
676
|
+
const backendRoot = path.resolve(process.cwd(), config.backendPath || './backend');
|
|
677
|
+
updateDatabaseSeedPermissions(backendRoot, config);
|
|
678
|
+
updateRolePermissionsComponent(frontendRoot, config);
|
|
675
679
|
}
|
|
676
680
|
function updateMainLayoutNavigation(frontendRoot, entities = [], configuredNavigation) {
|
|
677
681
|
const layoutPath = path.join(frontendRoot, 'src', 'app', 'shared', 'layouts', 'main-layout', 'main-layout.component.ts');
|
|
@@ -730,6 +734,57 @@ function updateMainLayoutNavigation(frontendRoot, entities = [], configuredNavig
|
|
|
730
734
|
fs.writeFileSync(layoutPath, updated, 'utf-8');
|
|
731
735
|
console.log('[Navegação] Menu principal sincronizado com as entidades ativas.');
|
|
732
736
|
}
|
|
737
|
+
function updateDatabaseSeedPermissions(backendRoot, config) {
|
|
738
|
+
const seedPath = path.join(backendRoot, 'src', 'modules', 'user', 'database-seed.service.ts');
|
|
739
|
+
if (!fs.existsSync(seedPath))
|
|
740
|
+
return;
|
|
741
|
+
const entities = config.entities || [];
|
|
742
|
+
try {
|
|
743
|
+
let content = fs.readFileSync(seedPath, 'utf-8');
|
|
744
|
+
// Substituir allPermissions
|
|
745
|
+
const allPermissionsRegex = /const allPermissions = \[[^\]]*\];/s;
|
|
746
|
+
const newAllPermissions = `const allPermissions = [
|
|
747
|
+
'*',
|
|
748
|
+
'read:role', 'create:role', 'update:role', 'delete:role', 'manage:permissions',
|
|
749
|
+
${entities.map((e) => {
|
|
750
|
+
const name = e.name.toLowerCase();
|
|
751
|
+
return `'read:${name}', 'create:${name}', 'update:${name}', 'delete:${name}'`;
|
|
752
|
+
}).join(',\n ')}
|
|
753
|
+
];`;
|
|
754
|
+
content = content.replace(allPermissionsRegex, newAllPermissions);
|
|
755
|
+
// Substituir permissões do Usuário Comum
|
|
756
|
+
const userPermissionsRegex = /name: 'Usuário Comum',\s+permissions: \[[^\]]*\],/s;
|
|
757
|
+
const newUserPermissions = `name: 'Usuário Comum',\n permissions: [${entities.map((e) => `'read:${e.name.toLowerCase()}'`).join(', ')}],`;
|
|
758
|
+
content = content.replace(userPermissionsRegex, newUserPermissions);
|
|
759
|
+
fs.writeFileSync(seedPath, content, 'utf-8');
|
|
760
|
+
console.log('[Permissões] database-seed.service.ts atualizado com as permissões das novas entidades.');
|
|
761
|
+
}
|
|
762
|
+
catch (err) {
|
|
763
|
+
console.error('[Erro] Falha ao atualizar permissões no database-seed.service.ts:', err);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
function updateRolePermissionsComponent(frontendRoot, config) {
|
|
767
|
+
const compPath = path.join(frontendRoot, 'src', 'app', 'modules', 'role', 'role-permissions.component.ts');
|
|
768
|
+
if (!fs.existsSync(compPath))
|
|
769
|
+
return;
|
|
770
|
+
const entities = config.entities || [];
|
|
771
|
+
try {
|
|
772
|
+
let content = fs.readFileSync(compPath, 'utf-8');
|
|
773
|
+
const resourcesRegex = /resources: ResourceItem\[\] = \[[^\]]*\];/s;
|
|
774
|
+
const newResources = `resources: ResourceItem[] = [
|
|
775
|
+
{ name: 'role', label: 'Perfis de Acesso' },
|
|
776
|
+
${entities.map((e) => {
|
|
777
|
+
return `{ name: '${e.name.toLowerCase()}', label: '${e.label || kebabToPascal(e.name)}' }`;
|
|
778
|
+
}).join(',\n ')}
|
|
779
|
+
];`;
|
|
780
|
+
content = content.replace(resourcesRegex, newResources);
|
|
781
|
+
fs.writeFileSync(compPath, content, 'utf-8');
|
|
782
|
+
console.log('[Permissões] role-permissions.component.ts atualizado com os recursos das novas entidades.');
|
|
783
|
+
}
|
|
784
|
+
catch (err) {
|
|
785
|
+
console.error('[Erro] Falha ao atualizar recursos no role-permissions.component.ts:', err);
|
|
786
|
+
}
|
|
787
|
+
}
|
|
733
788
|
function writeAppNavigation(frontendRoot, navigation) {
|
|
734
789
|
const navigationPath = path.join(frontendRoot, 'src', 'app', 'app.navigation.ts');
|
|
735
790
|
const items = JSON.stringify(navigation, null, 2)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devstroupe/devkit-cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.12",
|
|
4
4
|
"description": "DevsTroupe Development Kit CLI — scaffold NestJS+Angular projects, inject Spartan UI, generate CRUDs and audit architectural governance",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"commander": "^12.0.0",
|
|
38
38
|
"fs-extra": "^11.2.0",
|
|
39
|
-
"@devstroupe/devkit-core": "1.1.
|
|
39
|
+
"@devstroupe/devkit-core": "1.1.12"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/fs-extra": "^11.0.4",
|