मुख्य सामग्री पर जाएँ

क्लाइंट लाइब्रेरी

फ़्रेमवर्क अडैप्टर

TypeScript SDK

एक पैकेज, छह प्रवेश बिंदु। जो आपके रनटाइम से मेल खाता है उसे इंपोर्ट करें, और ट्री-शेकिंग बिल्ड बाकी को आपके बंडल से बाहर छोड़ देता है।

कहाँ प्रकाशित है

@prodantix/sdk on npm.

इंस्टॉल

Bash
bun add @prodantix/sdk

प्रवेश बिंदु

हर सबपाथ अपनी ESM और CommonJS बिल्ड अपने टाइप्स के साथ भेजता है। रूट रनटाइम-निरपेक्ष है, और बाकी वह जोड़ते हैं जो किसी एक रनटाइम को चाहिए।

SubpathWhat it exports
@prodantix/sdkProdantixClient, createClient, evaluateFlag, FlagsClient, MessagesClient
@prodantix/sdk/webcreateWebClient, installAutocapture, installSessionReplay, WebTransport
@prodantix/sdk/nodecreateNodeClient
@prodantix/sdk/cspprodantixConnectSrc, prodantixScriptSrc
@prodantix/sdk/chatmountChat, ChatClient, ChatPanel, resolveAppearance
@prodantix/sdk/messengerfetchMessengerConfig, cachedMessengerConfig, MESSENGER_CACHE_KEY

@prodantix/sdk

क्लाइंट, फ़्लैग मूल्यांकनकर्ता, और स्टोरेज तथा ट्रांसपोर्ट इंटरफ़ेस। यहाँ कुछ भी DOM को नहीं छूता, इसलिए आप अपना स्टोरेज, ट्रांसपोर्ट, क्लॉक या आईडी फ़ैक्ट्री देकर इसे कहीं भी चला सकते हैं।

TypeScript
import { createClient, MemoryStorage } from '@prodantix/sdk';

const prodantix = createClient({
  apiKey: PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.api.prodantix.com',
  storage: new MemoryStorage(),
});

prodantix.capture('order.completed', { properties: { amount: 4200, currency: 'XAF' } });
await prodantix.flush();

@prodantix/sdk/web

उसी क्लाइंट के ऊपर ब्राउज़र वायरिंग: लोकल स्टोरेज में स्थायित्व, पेज छिपने पर बीकन से डिलीवरी, और पेजव्यू तथा क्लिक का ऑटोकैप्चर। जब तक आप रीप्ले होस्ट नहीं देते, सेशन रीप्ले बंद रहता है।

TypeScript
import { createWebClient } from '@prodantix/sdk/web';

const prodantix = createWebClient({
  apiKey: PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.api.prodantix.com',
  flagsHost: 'https://api.prodantix.com',
  autocaptureOptions: { clicks: true, pageviews: true },
});

prodantix.identify('user-42', { set: { plan: 'pro' } });

if (await prodantix.isFeatureEnabled('new-checkout')) {
  // ...
}

// Every per-flag read records one $feature_flag_called exposure.
const variant = await prodantix.getVariant('new-checkout');
if (variant?.key === 'treatment') {
  // ...
}

// A flag targeting a cohort reads this user's memberships from the store;
// pass them yourself to skip the lookup.
if (await prodantix.isFeatureEnabledLocal('members', { cohorts: ['<cohort id>'] })) {
  // ...
}

@prodantix/sdk/node

वही क्लाइंट, सर्वर के डिफ़ॉल्ट के साथ। इवेंट बफ़र होते हैं और पृष्ठभूमि में भेजे जाते हैं, इसलिए प्रोसेस समाप्त होने से पहले shutdown कॉल करें, वरना आख़िरी बैच कभी नहीं जाएगा।

TypeScript
import { createNodeClient } from '@prodantix/sdk/node';

// A node client streams flag changes over Socket.IO by default and refetches
// the snapshot on push; streamFlags: false leaves only the 30s poll.
const prodantix = createNodeClient({
  apiKey: process.env.PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.api.prodantix.com',
  streamFlags: true,
});

prodantix.capture('job.completed', { properties: { queue: 'emails' } });
await prodantix.shutdown();

@prodantix/sdk/csp

किसी ऐप को Prodantix तक पहुँचने के लिए जिन कंटेंट सिक्योरिटी पॉलिसी स्रोतों की ज़रूरत होती है। यह React या ब्राउज़र से कुछ भी इंपोर्ट नहीं करता, इसलिए बिल्ड कॉन्फ़िग फ़ाइल इसे सीधे पढ़ सकती है।

TypeScript
import { prodantixConnectSrc, prodantixScriptSrc } from '@prodantix/sdk/csp';

const hosts = {
  ingest: 'https://eu.api.prodantix.com',
  edge: 'https://eu.edge.prodantix.com',
  replay: 'https://eu.replay.prodantix.com',
};

const policy = [
  `connect-src ${prodantixConnectSrc(hosts)}`,
  `script-src ${prodantixScriptSrc(hosts)}`,
].join('; ');

@prodantix/sdk/chat

सपोर्ट विजेट। इसे माउंट करें और आपको एक हैंडल मिलता है जो खोलता, बंद करता, नष्ट करता और उपयोगकर्ता की पहचान कराता है। यह एक बंद शैडो रूट के भीतर रेंडर होता है, इसलिए होस्ट पेज की शैलियाँ इस तक कभी नहीं पहुँचतीं।

TypeScript
import { mountChat } from '@prodantix/sdk/chat';

const messenger = mountChat({
  apiKey: PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.edge.prodantix.com',
  distinctId: prodantix.distinctId,
});

document.querySelector('#help')?.addEventListener('click', () => messenger.open());

@prodantix/sdk/messenger

विजेट के पीछे का सेटिंग रीडर: यह किसी प्रोजेक्ट का मैसेंजर कॉन्फ़िगरेशन लाता है, उसे कैश करता है, और बताता है कि प्रोजेक्ट ने मैसेंजर चालू रखा है या नहीं। स्वतः चलने वाला स्निपेट अलग से बनता है और इस सबपाथ से नहीं मिलता।

TypeScript
import { fetchMessengerConfig } from '@prodantix/sdk/messenger';

const config = await fetchMessengerConfig({
  apiKey: PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.edge.prodantix.com',
});

if (config?.enabled) {
  // the project has the messenger switched on
}