import {
Refine,
DebugPlugin,
ConsentPlugin,
AutoTrackPlugin
} from '@refine-ai/sdk';
const refine = new Refine({
apiKey: process.env.REFINE_API_KEY,
organizationId: 'org_abc123',
catalogId: 'cat_xyz789',
privacy: {
requireConsent: true
}
});
// Development: enable debug logging
if (process.env.NODE_ENV === 'development') {
refine.use(new DebugPlugin({
logEvents: true,
validateEvents: true
}));
}
// Production: consent management
const consentPlugin = new ConsentPlugin({
required: true,
onConsentRequired: () => {
document.getElementById('consent-banner')?.classList.remove('hidden');
}
});
refine.use(consentPlugin);
// Auto-tracking with consent gate
refine.use(new AutoTrackPlugin({
pageViews: true,
viewability: { enabled: true, threshold: 0.5, duration: 1000 }
}));
// Consent UI handlers
document.getElementById('accept-cookies')?.addEventListener('click', () => {
consentPlugin.grant();
document.getElementById('consent-banner')?.classList.add('hidden');
});
document.getElementById('decline-cookies')?.addEventListener('click', () => {
consentPlugin.deny();
document.getElementById('consent-banner')?.classList.add('hidden');
});