const fs = require('fs'); const navContent = fs.readFileSync('stores/navItems1.ts', 'utf-8'); const keys = [...navContent.matchAll(/menuKey:\s*['"]([^'"]+)['"]/g)].map(m => m[1]); console.log('Extracted keys:', keys); const data = JSON.parse(fs.readFileSync('data/mock/hakAkses.json', 'utf-8')); const menus = keys.map(k => ({ menuKey: k, name: k, canAccess: true, canView: true, canAdd: true, canEdit: true, canDelete: true })); const usernameOverrides = ['akbarantrean@gmail.com', 'akbar44', 'Akbar Attallah']; for (const user of usernameOverrides) { const existing = data.find(d => d.namaTipeUser === user || d.namaHakAkses === user); if (existing) { existing.hakAksesMenu = menus; existing.namaTipeUser = user; } else { data.push({ id: require('crypto').randomUUID(), namaHakAkses: user, namaTipeUser: user, status: 'aktif', isGroupBased: false, hakAksesMenu: menus }); } } fs.writeFileSync('data/mock/hakAkses.json', JSON.stringify(data, null, 4)); console.log('Granted full access to ' + usernameOverrides.join(', '));