
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
@loopkit/javascript
Advanced tools
A JavaScript SDK for LoopKit analytics that works in both browser and Node.js environments.
npm install @loopkit/javascript
<script src="https://cdn.loopkit.ai/js/loopkit.min.js"></script>
import LoopKit from '@loopkit/javascript';
// Initialize
LoopKit.init('your-api-key-here');
// Track an event
LoopKit.track('button_clicked', {
button_name: 'signup',
page: '/homepage',
});
// Identify a user
LoopKit.identify('user_123', {
email: 'user@example.com',
plan: 'pro',
});
const LoopKit = require('@loopkit/javascript');
// Initialize with configuration
LoopKit.init('your-api-key-here', {
debug: true,
batchSize: 50,
flushInterval: 30,
});
// Track server-side events
LoopKit.track('user_signup', {
method: 'email',
source: 'landing_page',
});
LoopKit.init(apiKey, options?)Initialize the SDK with your API key and optional configuration.
LoopKit.init('your-api-key', {
debug: false,
batchSize: 50,
flushInterval: 30,
enableAutoCapture: false,
enableErrorTracking: false,
});
LoopKit.track(eventName, properties?, options?)Track a custom event with optional properties.
LoopKit.track('purchase_completed', {
amount: 99.99,
currency: 'USD',
product_id: 'pro_plan',
});
Note: Timestamps are automatically added to all events. You don't need to manually include timestamp in your properties - the SDK handles this automatically at the event level.
LoopKit.trackBatch(events)Track multiple events in a single batch.
LoopKit.trackBatch([
{ name: 'page_view', properties: { page: '/home' } },
{ name: 'button_clicked', properties: { button: 'cta' } },
]);
LoopKit.identify(userId, properties?)Associate events with a specific user.
LoopKit.identify('user_123', {
email: 'user@example.com',
plan: 'enterprise',
signup_date: '2024-01-15',
});
LoopKit.group(groupId, properties?, groupType?)Associate the user with an organization or group.
LoopKit.group(
'company_abc',
{
name: 'Acme Corp',
plan: 'enterprise',
employee_count: 500,
},
'organization'
);
LoopKit.flush()Manually flush all queued events.
await LoopKit.flush();
LoopKit.getQueueSize()Get the current number of events in the queue.
const queueSize = LoopKit.getQueueSize();
console.log(`${queueSize} events queued`);
LoopKit.configure({
// API Settings
baseURL: 'https://api.loopkit.ai/v1',
// Batching
batchSize: 50, // Events per batch
flushInterval: 30, // Seconds between flushes
maxQueueSize: 1000, // Maximum events to queue
// Performance
enableCompression: true, // Gzip requests
requestTimeout: 10000, // Request timeout (ms)
// Debugging
debug: false, // Enable debug logs
logLevel: 'info', // 'error', 'warn', 'info', 'debug'
// Auto-capture (Browser only)
enableAutoCapture: false, // Auto-track page views
enableErrorTracking: false, // Auto-track JS errors
// Privacy
respectDoNotTrack: true, // Honor DNT header
enableLocalStorage: true, // Use localStorage for persistence
// Retry Logic
maxRetries: 3, // Number of retry attempts
retryBackoff: 'exponential', // 'exponential' or 'linear'
// Callbacks
onBeforeTrack: (event) => {
// Modify event before tracking
return event;
},
onAfterTrack: (event, success) => {
// Handle tracking result
console.log(`Event ${event.name} ${success ? 'sent' : 'failed'}`);
},
onError: (error) => {
// Handle errors
console.error('LoopKit error:', error);
},
});
# Install dependencies
npm install
# Build the SDK
npm run build
# Build and watch for changes
npm run build:watch
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint code
npm run lint
# Format code
npm run format
# 1. Increment version in package.json
# 2. Deploy to CDN
yarn deploy:cdn
# 3. Publish to NPM
npm publish --access public
MIT License. See LICENSE for details.
FAQs
JavaScript SDK for LoopKit analytics platform
The npm package @loopkit/javascript receives a total of 15 weekly downloads. As such, @loopkit/javascript popularity was classified as not popular.
We found that @loopkit/javascript demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers 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.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.