Research
Recent Trends in Malicious Packages Targeting Discord
The Socket research team breaks down a sampling of malicious packages that download and execute files, among other suspicious behaviors, targeting the popular Discord platform.
cordova-plugin-flurryanalytics2
Advanced tools
Readme
Adds support for Flurry Analytics to your Cordova or PhoneGap apps.
This plugin was heavily inspired by https://github.com/jfpsf/flurry-phonegap-plugin. Big thanks to its creators.
If you're like me and using Cordova CLI:
cordova plugin add cordova-plugin-flurryanalytics2
TODO: add manual installation steps
TODO: complete usage documentation
// create a new instance
flurryAnalytics = new FlurryAnalytics({
// requried
appKey: '<your app key>',
// optional
version: 'my_custom_version', // overrides the version of the app
continueSessionSeconds: 3, // how long can the app be paused before a new session is created, must be less than or equal to five for Android devices
userId: 'blakgeek',
gender: 'm', // valid values are "m", "M", "f" and "F"
age: 38,
logLevel: 'ERROR', // (VERBOSE, DEBUG, INFO, WARN, ERROR)
enablePulse: true, // defaults to false (I think :/ )
enableLogging: true, // defaults to false
enableEventLogging: false, // should every event show up the app's log, defaults to true
enableCrashReporting: true, // should app crashes be recorded in flurry, defaults to false, iOS only
enableBackgroundSessions: true, // should the session continue when the app is the background, defaults to false, iOS only
reportSessionsOnClose: false, // should data be pushed to flurry when the app closes, defaults to true, iOS only
reportSessionsOnPause: false // should data be pushed to flurry when the app is paused, defaults to true, iOS only
});
// sets userId for this session
flurryAnalytics.setUserId('OwnUser', function() {
console.log('Cool!');
}, function(err) {
console.error(['WTF?', err]);
});
// sets user's age for this session
flurryAnalytics.setAge(25, function() {
console.log('Ah yeah!');
}, function(err) {
console.error(['WTF?', err]);
});
// sets user's for this session
flurryAnalytics.setGender('FEMALE', function() {
console.log('woop woop!');
}, function(err) {
console.error(['WTF?', err]);
});
// log an event to flurry
flurryAnalytics.logEvent('dinner time', function() {
console.log('Nice!');
}, function(err) {
console.error(['WTF?', err]);
});
// log an event to flurry with custom parameters
var ovenParams = {
temp: 350,
mode: 'convection',
rackPosition: 'center'
}
flurryAnalytics.logEvent('set oven', ovenParams, function() {
console.log('Schweet!');
}, function(err) {
console.error(['WTF?', err]);
});
// start a timed event
flurryAnalytics.startTimedEvent('bake chicken', function() {
console.log('Hmmmm chicken');
}, function(err) {
console.error(['WTF?', err]);
});
// start a timed event with custom parameters
var riceParams = {
salt: '2tsp',
pepper: 'dash',
water: '2cups'
}
flurryAnalytics.startTimedEvent('prep rice', riceParams, function() {
console.log('Rice is prep started');
}, function(err) {
console.error(['WTF?', err]);
});
// complete a timed event
flurryAnalytics.endTimedEvent('bake chicken', function() {
console.log('Winner winner chicken dinner');
}, function(err) {
console.error(['WTF?', err]);
});
// complete a timed event and change the value of parameters
var newRiceParams = {
butter: '2pads'
}
flurryAnalytics.endTimedEvent('prep rice', newRiceParams, function() {
console.log('Winner winner chicken dinner');
}, function(err) {
console.error(['WTF?', err]);
});
// log an error
flurryAnalytics.logError('NO_EtOH', "We're out of wine and beer", function() {
console.log('The authorities have been alerted');
}, function(err) {
console.error(['WTF?', err]);
});
// log a page view
flurryAnalytics.logPageView(function() {
console.log('I see you playa');
}, function(err) {
console.error(['WTF?', err]);
});
// set the location for the event (this is will only be used for very course grained statistics like city
var location = {
latitude: 17.2500,
longitude: -62.6667,
verticalAccuracy: -1, // optional iOS only
horizontalAccuracy: 1440 // optional iOS only
}
flurryAnalytics.setLocation(location, function() {
console.log('Party over here');
}, function(err) {
console.error(['WTF?', err]);
});
FAQs
Ads support for Flurry Analytics to Cordova and Phonegap apps
The npm package cordova-plugin-flurryanalytics2 receives a total of 3 weekly downloads. As such, cordova-plugin-flurryanalytics2 popularity was classified as not popular.
We found that cordova-plugin-flurryanalytics2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
The Socket research team breaks down a sampling of malicious packages that download and execute files, among other suspicious behaviors, targeting the popular Discord platform.
Security News
Socket CEO Feross Aboukhadijeh joins a16z partners to discuss how modern, sophisticated supply chain attacks require AI-driven defenses and explore the challenges and solutions in leveraging AI for threat detection early in the development life cycle.
Security News
NIST's new AI Risk Management Framework aims to enhance the security and reliability of generative AI systems and address the unique challenges of malicious AI exploits.