class Group { constructor (children) { for (let [ key, value ] of Object.entries(children)) { this[key] = value } } } module.exports.types = { // Global utilities. backups: new Group({ list: require('./reports/backups/list') }), // Per-backup utilities backup: new Group({ status: require('./reports/backup/status'), manifest: require('./reports/backup/manifest'), info: require('./reports/backup/info'), files: require('./reports/backup/files') }), // Phone Data phone: new Group({ calls: require('./reports/phone/calls'), calls_statistics: require('./reports/phone/calls_statistics'), address_book: require('./reports/phone/address_book'), speed_dial: require('./reports/phone/speed_dial'), voicemail: require('./reports/phone/voicemail') }), // Notes report notes: require('./reports/notes/notes'), // Camera report photos: new Group({ locations: require('./reports/photos/locations') }), // Calendar calendar: new Group({ events: require('./reports/calendar/events') }), // Reports related to messaging. messages: new Group({ all: require('./reports/messages/all'), conversations: require('./reports/messages/conversations'), messages: require('./reports/messages/messages'), conversations_full: require('./reports/messages/conversations_full') }), // Safari Data safari: new Group({ history: require('./reports/safari/webhistory'), bookmarks: require('./reports/safari/bookmarks'), open_tabs: require('./reports/safari/open_tabs'), recent_searches: require('./reports/safari/recent_searches'), cookies: require('./reports/safari/cookies') }), // System level reports, such as wifi system: new Group({ wifi: require('./reports/system/wifi'), bluetooth_devices: require('./reports/system/bluetooth_devices'), pushstore: require('./reports/system/pushstore'), apps: require('./reports/system/apps'), geofences: require('./reports/system/geofences') }), // Facebook Data facebook: new Group({ profile: require('./reports/thirdparty/facebook/profile'), messenger: new Group({ friends: require('./reports/thirdparty/facebook/messenger') }) }), // Instagram data instagram: new Group({ profile: require('./reports/thirdparty/instagram/profile'), recent_searches: require('./reports/thirdparty/instagram/recent_searches'), following_users_coded: require('./reports/thirdparty/instagram/following_users_coded'), fb_friends: require('./reports/thirdparty/instagram/fb_friends') }), // Gmail gmail: new Group({ accounts: require('./reports/thirdparty/gmail/accounts'), shared_contacts: require('./reports/thirdparty/gmail/shared_contacts') }), // Spotify spotify: new Group({ searches: require('./reports/thirdparty/spotify/searches') }), // Waze waze: new Group({ favorites: require('./reports/thirdparty/waze/favorites'), places: require('./reports/thirdparty/waze/places'), recents: require('./reports/thirdparty/waze/recents') }), // Skype skype: new Group({ accounts: require('./reports/thirdparty/skype/accounts'), calls: require('./reports/thirdparty/skype/calls') }), // Viber viber: new Group({ contacts: require('./reports/thirdparty/viber/contacts'), calls: require('./reports/thirdparty/viber/calls'), messages: require('./reports/thirdparty/viber/messages') }) } module.exports.Group = Group