UNPKG

@ezbot-ai/javascript-sdk

Version:

The easiest way to interact with ezbot via JS (node and browser)

95 lines 7.08 kB
/* eslint-disable functional/immutable-data */ /* * This package uses source code from Snowplow Analytics Ltd * Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. Neither the name of the copyright holder nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ import { enableButtonClickTracking } from '@snowplow/browser-plugin-button-click-tracking'; import { enableLinkClickTracking } from '@snowplow/browser-plugin-link-click-tracking'; import { addGlobalContexts, newTracker, } from '@snowplow/browser-tracker'; import { defaultWebConfiguration, ezbotPredictionsContextSchemaPath, ezbotTrackerDomain, plugins, } from './constants'; import { getPredictions } from './predictions'; import { startActivityTracking, trackLinkClick, trackPageView, trackRewardEvent, } from './tracking'; import { makeVisualChange, makeVisualChanges, visualChanges, visualUtils, } from './visualChanges'; const ezbotTrackerId = 'ezbot'; async function initEzbot(projectId, // eslint-disable-next-line @typescript-eslint/no-unused-vars _config = defaultWebConfiguration) { const existingTracker = window.ezbot?.tracker; if (existingTracker) { return existingTracker; } const tracker = newTracker(ezbotTrackerId, ezbotTrackerDomain, { appId: projectId.toString(), plugins: plugins, stateStorageStrategy: 'localStorage', }); if (!tracker) { throw new Error('Failed to initialize tracker'); } const domainUserInfo = tracker.getDomainUserInfo(); const sessionId = domainUserInfo[6]; const predictions = await getPredictions(projectId, sessionId, tracker); const predictionsContext = { schema: ezbotPredictionsContextSchemaPath, data: { predictions: predictions.map((pred) => ({ variable: pred.key, value: pred.value, })), }, }; addGlobalContexts([predictionsContext], [tracker.id]); window.ezbot = { tracker: tracker, predictions: predictions, sessionId: sessionId, trackPageView: trackPageView, // only send to ezbot tracker trackRewardEvent: trackRewardEvent, startActivityTracking: startActivityTracking, makeVisualChanges: makeVisualChanges, utils: { visual: visualUtils, }, actions: { visual: visualChanges, }, intervals: [], mode: 'ezbot', }; try { enableLinkClickTracking(); enableButtonClickTracking(); } catch (error) { console.error('Failed to enable click tracking', error); } return tracker; } export { trackRewardEvent, initEzbot, makeVisualChange, makeVisualChanges, startActivityTracking, trackLinkClick, trackPageView, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXpib3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2V6Ym90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUE4QztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFFSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBR25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLGtCQUFrQixFQUNsQixPQUFPLEdBQ1IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0sWUFBWSxDQUFDO0FBV3BCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFFL0IsS0FBSyxVQUFVLFNBQVMsQ0FDdEIsU0FBaUI7QUFDakIsNkRBQTZEO0FBQzdELFVBQWdDLHVCQUF1QjtJQUV2RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUM5QyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1FBQzdELEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQzNCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLG9CQUFvQixFQUFFLGNBQWM7S0FDckMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEVBQWEsQ0FBQztJQUM5RCxNQUFNLFNBQVMsR0FBWSxjQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sV0FBVyxHQUFzQixNQUFNLGNBQWMsQ0FDekQsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sa0JBQWtCLEdBQTRCO1FBQ2xELE1BQU0sRUFBRSxpQ0FBaUM7UUFDekMsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQztTQUNKO0tBQ0YsQ0FBQztJQUNGLGlCQUFpQixDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsV0FBVztRQUN4QixTQUFTLEVBQUUsU0FBUztRQUNwQixhQUFhLEVBQUUsYUFBYSxFQUFFLDZCQUE2QjtRQUMzRCxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMscUJBQXFCLEVBQUUscUJBQXFCO1FBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsV0FBVztTQUNwQjtRQUNELE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxhQUFhO1NBQ3RCO1FBQ0QsU0FBUyxFQUFFLEVBQUU7UUFDYixJQUFJLEVBQUUsT0FBTztLQUNkLENBQUM7SUFDRixJQUFJLENBQUM7UUFDSCx1QkFBdUIsRUFBRSxDQUFDO1FBQzFCLHlCQUF5QixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGFBQWEsR0FTZCxDQUFDIn0=