Files
admin 875c7f9b91 feat: Complete zCode CLI X with Telegram bot integration
- 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
2026-05-05 09:01:26 +00:00

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