- Add full Telegram bot functionality with Z.AI API integration
- Implement 4 tools: Bash, FileEdit, WebSearch, Git
- Add 3 agents: Code Reviewer, Architect, DevOps Engineer
- Add 6 skills for common coding tasks
- Add systemd service file for 24/7 operation
- Add nginx configuration for HTTPS webhook
- Add comprehensive documentation
- Implement WebSocket server for real-time updates
- Add logging system with Winston
- Add environment validation
🤖 zCode CLI X - Agentic coder with Z.AI + Telegram integration
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.thirdPartyTrackingPlugin = thirdPartyTrackingPlugin;
|
|
function thirdPartyTrackingPlugin({
|
|
additionalCallback,
|
|
trackers = ["gtag", "gtm", "segment"]
|
|
} = {}) {
|
|
// Browser only
|
|
if (typeof window === "undefined") {
|
|
throw new Error("thirdPartyTrackingPlugin only works in the browser");
|
|
}
|
|
return gb => {
|
|
gb.setTrackingCallback(async (e, r) => {
|
|
const promises = [];
|
|
const eventParams = {
|
|
experiment_id: e.key,
|
|
variation_id: r.key
|
|
};
|
|
if (additionalCallback) {
|
|
promises.push(Promise.resolve(additionalCallback(e, r)));
|
|
}
|
|
|
|
// GA4 - gtag
|
|
if (trackers.includes("gtag") && window.gtag) {
|
|
let gtagResolve;
|
|
const gtagPromise = new Promise(resolve => {
|
|
gtagResolve = resolve;
|
|
});
|
|
promises.push(gtagPromise);
|
|
window.gtag("event", "experiment_viewed", {
|
|
...eventParams,
|
|
event_callback: gtagResolve
|
|
});
|
|
}
|
|
|
|
// GTM - dataLayer
|
|
if (trackers.includes("gtm") && window.dataLayer) {
|
|
let datalayerResolve;
|
|
const datalayerPromise = new Promise(resolve => {
|
|
datalayerResolve = resolve;
|
|
});
|
|
promises.push(datalayerPromise);
|
|
window.dataLayer.push({
|
|
event: "experiment_viewed",
|
|
...eventParams,
|
|
eventCallback: datalayerResolve
|
|
});
|
|
}
|
|
|
|
// Segment - analytics.js
|
|
if (trackers.includes("segment") && window.analytics && window.analytics.track) {
|
|
window.analytics.track("Experiment Viewed", eventParams);
|
|
const segmentPromise = new Promise(resolve => window.setTimeout(resolve, 300));
|
|
promises.push(segmentPromise);
|
|
}
|
|
await Promise.all(promises);
|
|
});
|
|
};
|
|
}
|
|
//# sourceMappingURL=third-party-tracking.js.map
|