New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@uniformdev/optimize-tracker

Package Overview
Dependencies
Maintainers
10
Versions
170
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uniformdev/optimize-tracker - npm Package Compare versions

Comparing version 11.0.1-alpha.55 to 11.0.1-alpha.65

2

dist/cjs/__tests__/common.js

@@ -1,1 +0,1 @@

"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,t=1,i=arguments.length;t<i;t++)for(var s in r=arguments[t])Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s]);return e}).apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildTestingTracker=void 0;var tracker_1=require("../tracker"),visitorScopeStrategy_1=require("../scope/visitorScopeStrategy"),visitScopeStrategy_1=require("../scope/visitScopeStrategy"),inMemory_1=require("../storage/inMemory"),buildTestingTracker=function(e){var r=inMemory_1.inMemoryScopeStorage(),t=inMemory_1.inMemoryTestStorage();return{tracker:new tracker_1.OptimizeTracker(__assign({scopes:{visit:visitScopeStrategy_1.createVisitScopeStrategy(),visitor:visitorScopeStrategy_1.createVisitorScopeStrategy()},storage:{tests:t,scopes:r}},e||{})),scopeStorage:r,testStorage:t}};exports.buildTestingTracker=buildTestingTracker;
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,t=1,i=arguments.length;t<i;t++)for(var s in r=arguments[t])Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s]);return e}).apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildTestingTracker=void 0;var tracker_1=require("../tracker"),visitorScopeStrategy_1=require("../scope/visitorScopeStrategy"),visitScopeStrategy_1=require("../scope/visitScopeStrategy"),inMemory_1=require("../storage/inMemory"),buildTestingTracker=function(e){var r=(0,inMemory_1.inMemoryScopeStorage)(),t=(0,inMemory_1.inMemoryTestStorage)();return{tracker:new tracker_1.OptimizeTracker(__assign({scopes:{visit:(0,visitScopeStrategy_1.createVisitScopeStrategy)(),visitor:(0,visitorScopeStrategy_1.createVisitorScopeStrategy)()},storage:{tests:t,scopes:r}},e||{})),scopeStorage:r,testStorage:t}};exports.buildTestingTracker=buildTestingTracker;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AnalyticsEmitter=exports.NoopAnalyticsEmitter=exports.resolveAnalyticsEmitter=void 0;var resolveAnalyticsEmitter=function(t){var e=t.active,t=t.options;return e&&"undefined"!=typeof window?exports.AnalyticsEmitter(t):exports.NoopAnalyticsEmitter()};exports.resolveAnalyticsEmitter=resolveAnalyticsEmitter;var NoopAnalyticsEmitter=function(){return{personalization:function(){return!1},test:function(){return!1}}};exports.NoopAnalyticsEmitter=NoopAnalyticsEmitter;var AnalyticsEmitter=function(t){var n=t.tracker,r=t.name;return{personalization:function(t){var e=t.matches,i=t.isInPersonalizationControlGroup,t=t.intentScores;if(!n||!n.isInitialized())return!1;e=e&&e.length?e.join(", "):"Default";return n.trackPersonalization(r,{category:"Uniform Personalization",label:e,value:i?1:0,intentScores:t}),!0},test:function(t){var e=t.testName,i=t.testSelection;if(!n||!n.isInitialized())return!1;t="undefined"!=typeof document?document.title:"";return n.trackPersonalization(e+" | "+t,{category:"Uniform AB Testing",label:i||"No Variant"}),!0}}};exports.AnalyticsEmitter=AnalyticsEmitter;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AnalyticsEmitter=exports.NoopAnalyticsEmitter=exports.resolveAnalyticsEmitter=void 0;var resolveAnalyticsEmitter=function(t){var e=t.active,t=t.options;return e&&"undefined"!=typeof window?(0,exports.AnalyticsEmitter)(t):(0,exports.NoopAnalyticsEmitter)()};exports.resolveAnalyticsEmitter=resolveAnalyticsEmitter;var NoopAnalyticsEmitter=function(){return{personalization:function(){return!1},test:function(){return!1}}};exports.NoopAnalyticsEmitter=NoopAnalyticsEmitter;var AnalyticsEmitter=function(t){var n=t.tracker,r=t.name;return{personalization:function(t){var e=t.matches,i=t.isInPersonalizationControlGroup,t=t.intentScores;if(!n||!n.isInitialized())return!1;e=e&&e.length?e.join(", "):"Default";return n.trackPersonalization(r,{category:"Uniform Personalization",label:e,value:i?1:0,intentScores:t}),!0},test:function(t){var e=t.testName,i=t.testSelection;if(!n||!n.isInitialized())return!1;t="undefined"!=typeof document?document.title:"";return n.trackPersonalization(e+" | "+t,{category:"Uniform AB Testing",label:i||"No Variant"}),!0}}};exports.AnalyticsEmitter=AnalyticsEmitter;

@@ -1,1 +0,1 @@

"use strict";var __awaiter=this&&this.__awaiter||function(e,s,a,c){return new(a=a||Promise)(function(n,t){function o(e){try{i(c.next(e))}catch(e){t(e)}}function r(e){try{i(c.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(o,r)}i((c=c.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(n,o){var r,i,s,a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,i&&(s=2&t[0]?i.return:t[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,t[1])).done)return s;switch(i=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,i=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(s=0<(s=a.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3])){a.label=t[1];break}if(6===t[0]&&a.label<s[1]){a.label=s[1],s=t;break}if(s&&a.label<s[2]){a.label=s[2],a.ops.push(t);break}s[2]&&a.ops.pop(),a.trys.pop();continue}t=o.call(n,a)}catch(e){t=[6,e],i=0}finally{r=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addBrowserExtension=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),optimize_tracker_common_1=require("@uniformdev/optimize-tracker-common"),isBrowser="undefined"!=typeof top,addBrowserExtension=function(e){var o;return(e||{}).disableEventListeners||isBrowser&&window.addEventListener("message",function(n){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return n.data?optimize_tracker_common_1.isExtensionSetScoreMessage(n.data)&&(t=n.data.score)?(console.warn("[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.",t),[4,null==o?void 0:o.setIntentStrength(optimize_common_1.Scope.Visitor,{})]):[3,3]:[2];case 1:return e.sent(),[4,null==o?void 0:o.setIntentStrength(optimize_common_1.Scope.Visit,t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})}),{name:"browser-extension",initialize:function(e){o=e,isBrowser&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Hello,manifest:e.manifest},window.location.origin)},onLogMessage:function(e){isBrowser&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Log,message:e},window.location.origin)},onScoringChange:function(e){e&&isBrowser&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Score,score:e},window.location.origin)}}};exports.addBrowserExtension=addBrowserExtension;
"use strict";var __awaiter=this&&this.__awaiter||function(e,s,a,c){return new(a=a||Promise)(function(o,t){function n(e){try{i(c.next(e))}catch(e){t(e)}}function r(e){try{i(c.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?o(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(n,r)}i((c=c.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(o,n){var r,i,s,a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,i&&(s=2&t[0]?i.return:t[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,t[1])).done)return s;switch(i=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,i=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(s=0<(s=a.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3])){a.label=t[1];break}if(6===t[0]&&a.label<s[1]){a.label=s[1],s=t;break}if(s&&a.label<s[2]){a.label=s[2],a.ops.push(t);break}s[2]&&a.ops.pop(),a.trys.pop();continue}t=n.call(o,a)}catch(e){t=[6,e],i=0}finally{r=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addBrowserExtension=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),optimize_tracker_common_1=require("@uniformdev/optimize-tracker-common"),isBrowser="undefined"!=typeof top,addBrowserExtension=function(e){var n;return(e||{}).disableEventListeners||isBrowser&&window.addEventListener("message",function(o){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return o.data?(0,optimize_tracker_common_1.isExtensionSetScoreMessage)(o.data)&&(t=o.data.score)?(console.warn("[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.",t),[4,null==n?void 0:n.setIntentStrength(optimize_common_1.Scope.Visitor,{})]):[3,3]:[2];case 1:return e.sent(),[4,null==n?void 0:n.setIntentStrength(optimize_common_1.Scope.Visit,t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})}),{name:"browser-extension",initialize:function(e){n=e,isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Hello,manifest:e.manifest},window.location.origin)},onLogMessage:function(e){isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Log,message:e},window.location.origin)},onScoringChange:function(e){e&&isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:optimize_tracker_common_1.ExtensionEvents.Score,score:e},window.location.origin)}}};exports.addBrowserExtension=addBrowserExtension;

@@ -1,1 +0,1 @@

"use strict";var __rest=this&&this.__rest||function(e,o){var r={};for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]]);return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addConsoleLoggerPlugin=void 0;var utils_1=require("../utils"),addConsoleLoggerPlugin=function(l){return void 0===l&&(l="info"),{name:"console-logger",onLogMessage:function(e){var o,r=e.level,n=void 0===r?"verbose":r,t=e.message,s=__rest(e,["level","message"]);utils_1.isLogLevelUnderThreshold(l,n)&&(o="",r=console.log,"error"===n?(r=console.error,o=""):"warn"===n?(r=console.warn,o=""):"verbose"===n&&(o="font-size: 0.8em;"),e="%c[Uniform] "+t,s?(n=s.region,s=__rest(s,["region"]),n&&(e="%c[Uniform] ["+n+"] "+t),0<Object.keys(s).length?r(e,o,s):r(e,o)):r(e,o))}}};exports.addConsoleLoggerPlugin=addConsoleLoggerPlugin;
"use strict";var __rest=this&&this.__rest||function(e,o){var r={};for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]]);return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addConsoleLoggerPlugin=void 0;var utils_1=require("../utils"),addConsoleLoggerPlugin=function(l){return void 0===l&&(l="info"),{name:"console-logger",onLogMessage:function(e){var o,r=e.level,n=void 0===r?"verbose":r,t=e.message,s=__rest(e,["level","message"]);(0,utils_1.isLogLevelUnderThreshold)(l,n)&&(o="",r=console.log,"error"===n?(r=console.error,o=""):"warn"===n?(r=console.warn,o=""):"verbose"===n&&(o="font-size: 0.8em;"),e="%c[Uniform] "+t,s?(n=s.region,s=__rest(s,["region"]),n&&(e="%c[Uniform] ["+n+"] "+t),0<Object.keys(s).length?r(e,o,s):r(e,o)):r(e,o))}}};exports.addConsoleLoggerPlugin=addConsoleLoggerPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateRandom=exports.testList=exports.normalizeVariationDistributions=void 0;var normalizeVariationDistributions=function(t){var e,i=t.reduce(function(t,i){return i.distribution?t.total+=i.distribution:++t.missingDistribution,t.values.push(i.distribution),t},{values:[],total:0,missingDistribution:0}),n=i.values,t=i.total,i=i.missingDistribution;if(100<t)throw"Total distribution "+t+" is over the maximum 100.";return t<100&&(e=(100-t)/i,n.forEach(function(t,i){void 0===t&&(n[i]=e)})),n};exports.normalizeVariationDistributions=normalizeVariationDistributions;var testList=function(t){var e,n,i,r=t.testName,o=t.variations,s=t.random,a=t.selectedVariantId,t=t.analyticsEmitter;if(100<s||s<0)throw"Random must be between 0 and 100";a&&((i=o.find(function(t){return t.id===a}))||console.warn("Previously selected variant is no longer present.")),i||(e=exports.normalizeVariationDistributions(o),n=0,i=o.find(function(t,i){i=e[i];if(n<s&&s<=n+i)return t;n+=i}));return null!=t&&t.test({testName:r,testSelection:null==i?void 0:i.id}),{result:i,tracked:!1}};exports.testList=testList;var generateRandom=function(){return Math.floor(100*Math.random())};exports.generateRandom=generateRandom;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateRandom=exports.testList=exports.normalizeVariationDistributions=void 0;var normalizeVariationDistributions=function(t){var e,i=t.reduce(function(t,i){return i.distribution?t.total+=i.distribution:++t.missingDistribution,t.values.push(i.distribution),t},{values:[],total:0,missingDistribution:0}),n=i.values,t=i.total,i=i.missingDistribution;if(100<t)throw"Total distribution "+t+" is over the maximum 100.";return t<100&&(e=(100-t)/i,n.forEach(function(t,i){void 0===t&&(n[i]=e)})),n};exports.normalizeVariationDistributions=normalizeVariationDistributions;var testList=function(t){var e,n,i,r=t.testName,o=t.variations,s=t.random,a=t.selectedVariantId,t=t.analyticsEmitter;if(100<s||s<0)throw"Random must be between 0 and 100";a&&((i=o.find(function(t){return t.id===a}))||console.warn("Previously selected variant is no longer present.")),i||(e=(0,exports.normalizeVariationDistributions)(o),n=0,i=o.find(function(t,i){i=e[i];if(n<s&&s<=n+i)return t;n+=i}));return null!=t&&t.test({testName:r,testSelection:null==i?void 0:i.id}),{result:i,tracked:!1}};exports.testList=testList;var generateRandom=function(){return Math.floor(100*Math.random())};exports.generateRandom=generateRandom;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.personalizeList=exports.calculateScore=void 0;var optimize_tracker_common_1=require("@uniformdev/optimize-tracker-common"),optimize_common_1=require("@uniformdev/optimize-common"),vectorMagnitude_1=require("./vectorMagnitude"),normalizeResultScores_1=require("./normalizeResultScores"),calculateScore=function(e){var t=e.intentTag,n=e.intentScores;if(!n||!t)return{isDefault:!0,score:0,tagStrength:0};e=optimize_common_1.getPersonalizationIntents(t);if(!e||0===Object.keys(e).length)return{isDefault:!0,score:0,tagStrength:0};var i={},r={};return Object.keys(t.intents).forEach(function(e){n[e]&&(i[e]=n[e],r[e]=t.intents[e])}),{score:vectorMagnitude_1.vectorMagnitude(i),isDefault:!1,tagStrength:vectorMagnitude_1.vectorMagnitude(r),matches:Object.keys(i)}};exports.calculateScore=calculateScore;var compareOverride=function(n,i){var e=Object.keys(null!==(t=null===(e=null===(t=n.item)||void 0===t?void 0:t.intentTag)||void 0===e?void 0:e.intents)&&void 0!==t?t:{}).some(function(e){var t;return(null===(t=n.matches)||void 0===t?void 0:t.includes(e))&&(null===(t=null===(t=n.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents[e].override)}),t=Object.keys(null!==(t=null===(t=null===(t=i.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents)&&void 0!==t?t:{}).some(function(e){var t;return(null===(t=i.matches)||void 0===t?void 0:t.includes(e))&&(null===(t=null===(t=i.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents[e].override)});return e&&!t?-1:!e&&t?1:0},compareRelevancyDesc=function(e,t){var n=t.relevancy-e.relevancy;if(0!=n)return n;n=t.tagStrength-e.tagStrength;if(0!=n)return n;n=Number(t.isDefault)-Number(e.isDefault);return 0!=n?n:((null===(t=t.matches)||void 0===t?void 0:t.length)||0)-((null===(e=e.matches)||void 0===e?void 0:e.length)||0)},personalizeList=function(e){var t=e.list,a=e.intentScores,n=e.scorer,i=e.fallbackSort,r=e.analyticsEmitter,o=e.isInPersonalizationControlGroup,l=e.count,e=e.matchFilter,u=void 0===e?"personalizedOrDefault":e,c=!1,s=null!=n?n:exports.calculateScore,v=[],m={};t.forEach(function(e){if(null!==(l=e.intentTag)&&void 0!==l&&l.intents){var i=!0,r=e.intentTag.intents;if(Object.keys(r).forEach(function(e){var t,n=r[e];n.threshold&&(t=null!==(t=null===(t=a[e])||void 0===t?void 0:t.str)&&void 0!==t?t:0,n.threshold>t&&(i=!1));e=m[e]=null!==(e=m[e])&&void 0!==e?e:{count:0,max:0};e.count++,i&&(e.max=Math.max(null!==(n=n.threshold)&&void 0!==n?n:0,0))}),!i)return}var t=s({intentTag:e.intentTag,intentScores:a}),n=t.score,o=t.tagStrength,l=t.isDefault,t=t.matches;0<n&&(c=!0);l={item:e,matches:t,relevancy:n,tagStrength:o,isDefault:l};(u!==optimize_tracker_common_1.MatchFilter.PersonalizedOnly&&"personalizedOnly"!==u||!l.isDefault)&&(u!==optimize_tracker_common_1.MatchFilter.PersonalizedOnly&&"personalizedOnly"!==u&&u!==optimize_tracker_common_1.MatchFilter.PersonalizedOrDefault&&"personalizedOrDefault"!==u||0!==l.relevancy||l.isDefault)&&v.push(l)}),normalizeResultScores_1.normalizeResultScores(v),v=v.filter(function(e){var n=null===(e=e.item.intentTag)||void 0===e?void 0:e.intents;return!n||Object.keys(n).every(function(e){var t=n[e],e=m[e];return 1===e.count||0===e.max||(null!==(t=t.threshold)&&void 0!==t?t:0)===e.max})}),c&&!o?v.sort(function(e,t){var n=compareOverride(e,t);if(0!==n)return n;n=compareRelevancyDesc(e,t);return 0===n&&i?i(e.item,t.item):n}):v.sort(function(e,t){return e.isDefault===t.isDefault?i?i(e.item,t.item):0:Number(t.isDefault)>Number(e.isDefault)?1:-1});t=v;return"number"==typeof l&&0<l&&(t=t.slice(0,l)),r&&(l=new Set(t.flatMap(function(e){return null!==(e=e.matches)&&void 0!==e?e:[]})),null!=r&&r.personalization({matches:Array.from(l),isInPersonalizationControlGroup:null!=o&&o,intentScores:a})),{result:t,personalized:!o&&c,intentScores:a}};exports.personalizeList=personalizeList;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.personalizeList=exports.calculateScore=void 0;var optimize_tracker_common_1=require("@uniformdev/optimize-tracker-common"),optimize_common_1=require("@uniformdev/optimize-common"),vectorMagnitude_1=require("./vectorMagnitude"),normalizeResultScores_1=require("./normalizeResultScores"),calculateScore=function(e){var t=e.intentTag,n=e.intentScores;if(!n||!t)return{isDefault:!0,score:0,tagStrength:0};e=(0,optimize_common_1.getPersonalizationIntents)(t);if(!e||0===Object.keys(e).length)return{isDefault:!0,score:0,tagStrength:0};var i={},r={};return Object.keys(t.intents).forEach(function(e){n[e]&&(i[e]=n[e],r[e]=t.intents[e])}),{score:(0,vectorMagnitude_1.vectorMagnitude)(i),isDefault:!1,tagStrength:(0,vectorMagnitude_1.vectorMagnitude)(r),matches:Object.keys(i)}};exports.calculateScore=calculateScore;var compareOverride=function(n,i){var e=Object.keys(null!==(t=null===(e=null===(t=n.item)||void 0===t?void 0:t.intentTag)||void 0===e?void 0:e.intents)&&void 0!==t?t:{}).some(function(e){var t;return(null===(t=n.matches)||void 0===t?void 0:t.includes(e))&&(null===(t=null===(t=n.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents[e].override)}),t=Object.keys(null!==(t=null===(t=null===(t=i.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents)&&void 0!==t?t:{}).some(function(e){var t;return(null===(t=i.matches)||void 0===t?void 0:t.includes(e))&&(null===(t=null===(t=i.item)||void 0===t?void 0:t.intentTag)||void 0===t?void 0:t.intents[e].override)});return e&&!t?-1:!e&&t?1:0},compareRelevancyDesc=function(e,t){var n=t.relevancy-e.relevancy;if(0!=n)return n;n=t.tagStrength-e.tagStrength;if(0!=n)return n;n=Number(t.isDefault)-Number(e.isDefault);return 0!=n?n:((null===(t=t.matches)||void 0===t?void 0:t.length)||0)-((null===(e=e.matches)||void 0===e?void 0:e.length)||0)},personalizeList=function(e){var t=e.list,a=e.intentScores,n=e.scorer,i=e.fallbackSort,r=e.analyticsEmitter,o=e.isInPersonalizationControlGroup,l=e.count,e=e.matchFilter,u=void 0===e?"personalizedOrDefault":e,c=!1,s=null!=n?n:exports.calculateScore,v=[],m={};t.forEach(function(e){if(null!==(l=e.intentTag)&&void 0!==l&&l.intents){var i=!0,r=e.intentTag.intents;if(Object.keys(r).forEach(function(e){var t,n=r[e];n.threshold&&(t=null!==(t=null===(t=a[e])||void 0===t?void 0:t.str)&&void 0!==t?t:0,n.threshold>t&&(i=!1));e=m[e]=null!==(e=m[e])&&void 0!==e?e:{count:0,max:0};e.count++,i&&(e.max=Math.max(null!==(n=n.threshold)&&void 0!==n?n:0,0))}),!i)return}var t=s({intentTag:e.intentTag,intentScores:a}),n=t.score,o=t.tagStrength,l=t.isDefault,t=t.matches;0<n&&(c=!0);l={item:e,matches:t,relevancy:n,tagStrength:o,isDefault:l};(u!==optimize_tracker_common_1.MatchFilter.PersonalizedOnly&&"personalizedOnly"!==u||!l.isDefault)&&(u!==optimize_tracker_common_1.MatchFilter.PersonalizedOnly&&"personalizedOnly"!==u&&u!==optimize_tracker_common_1.MatchFilter.PersonalizedOrDefault&&"personalizedOrDefault"!==u||0!==l.relevancy||l.isDefault)&&v.push(l)}),(0,normalizeResultScores_1.normalizeResultScores)(v),v=v.filter(function(e){var n=null===(e=e.item.intentTag)||void 0===e?void 0:e.intents;return!n||Object.keys(n).every(function(e){var t=n[e],e=m[e];return 1===e.count||0===e.max||(null!==(t=t.threshold)&&void 0!==t?t:0)===e.max})}),c&&!o?v.sort(function(e,t){var n=compareOverride(e,t);if(0!==n)return n;n=compareRelevancyDesc(e,t);return 0===n&&i?i(e.item,t.item):n}):v.sort(function(e,t){return e.isDefault===t.isDefault?i?i(e.item,t.item):0:Number(t.isDefault)>Number(e.isDefault)?1:-1});t=v;return"number"==typeof l&&0<l&&(t=t.slice(0,l)),r&&(l=new Set(t.flatMap(function(e){return null!==(e=e.matches)&&void 0!==e?e:[]})),null!=r&&r.personalization({matches:Array.from(l),isInPersonalizationControlGroup:null!=o&&o,intentScores:a})),{result:t,personalized:!o&&c,intentScores:a}};exports.personalizeList=personalizeList;

@@ -1,1 +0,1 @@

"use strict";var __awaiter=this&&this.__awaiter||function(e,a,u,c){return new(u=u||Promise)(function(r,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function i(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,i)}o((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&t[0]?o.return:t[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;switch(o=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){u.label=t[1];break}if(6===t[0]&&u.label<a[1]){u.label=a[1],a=t;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(t);break}a[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.scopeStrategy=void 0;var uuid_1=require("uuid"),loggingRegion="scopeStrategy",scopeStrategy=function(i){function o(){return{id:uuid_1.v4(),created:(new Date).valueOf(),state:{},type:i.type,random:Math.random()}}var a,u=i.type,c=function(){};return{type:u,initialize:function(e){var t=e.log,r=e.storage;return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){return c=t,a=r,[2]})})},get:function(){return __awaiter(void 0,void 0,void 0,function(){var r,n;return __generator(this,function(e){switch(e.label){case 0:if(!a)throw new Error("call initialize first");return[4,a.getScope(u)];case 1:return((r=e.sent())&&(t=r,void 0!==i.expirationMinutes&&60*i.expirationMinutes*1e3<=(new Date).valueOf()-(t.updated||t.created))&&(c({level:"info",region:loggingRegion,message:"Scope "+u+" is expired, data cleared."}),r=void 0),r)?[3,3]:(c({level:"verbose",region:loggingRegion,message:"Creating scope "+u}),n=(null==i?void 0:i.createScope)||o,n=n(),[4,a.setScope(n)]);case 2:return e.sent(),[2,n];case 3:return[2,r]}var t})})},save:function(t){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:if(!a)throw new Error("call initialize first");return[4,a.setScope(t)];case 1:return e.sent(),[2]}})})},getExpiration:function(){return i.expirationMinutes}}};exports.scopeStrategy=scopeStrategy;
"use strict";var __awaiter=this&&this.__awaiter||function(e,a,u,c){return new(u=u||Promise)(function(r,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function i(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,i)}o((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&t[0]?o.return:t[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;switch(o=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){u.label=t[1];break}if(6===t[0]&&u.label<a[1]){u.label=a[1],a=t;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(t);break}a[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.scopeStrategy=void 0;var uuid_1=require("uuid"),loggingRegion="scopeStrategy",scopeStrategy=function(i){function o(){return{id:(0,uuid_1.v4)(),created:(new Date).valueOf(),state:{},type:i.type,random:Math.random()}}var a,u=i.type,c=function(){};return{type:u,initialize:function(e){var t=e.log,r=e.storage;return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){return c=t,a=r,[2]})})},get:function(){return __awaiter(void 0,void 0,void 0,function(){var r,n;return __generator(this,function(e){switch(e.label){case 0:if(!a)throw new Error("call initialize first");return[4,a.getScope(u)];case 1:return((r=e.sent())&&(t=r,void 0!==i.expirationMinutes&&60*i.expirationMinutes*1e3<=(new Date).valueOf()-(t.updated||t.created))&&(c({level:"info",region:loggingRegion,message:"Scope "+u+" is expired, data cleared."}),r=void 0),r)?[3,3]:(c({level:"verbose",region:loggingRegion,message:"Creating scope "+u}),n=(null==i?void 0:i.createScope)||o,n=n(),[4,a.setScope(n)]);case 2:return e.sent(),[2,n];case 3:return[2,r]}var t})})},save:function(t){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:if(!a)throw new Error("call initialize first");return[4,a.setScope(t)];case 1:return e.sent(),[2]}})})},getExpiration:function(){return i.expirationMinutes}}};exports.scopeStrategy=scopeStrategy;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createVisitorScopeStrategy=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),scopeStrategy_1=require("./scopeStrategy"),createVisitorScopeStrategy=function(){return scopeStrategy_1.scopeStrategy({type:optimize_common_1.Scope.Visitor})};exports.createVisitorScopeStrategy=createVisitorScopeStrategy;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createVisitorScopeStrategy=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),scopeStrategy_1=require("./scopeStrategy"),createVisitorScopeStrategy=function(){return(0,scopeStrategy_1.scopeStrategy)({type:optimize_common_1.Scope.Visitor})};exports.createVisitorScopeStrategy=createVisitorScopeStrategy;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createVisitScopeStrategy=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),scopeStrategy_1=require("./scopeStrategy"),createVisitScopeStrategy=function(e){return scopeStrategy_1.scopeStrategy({type:optimize_common_1.Scope.Visit,expirationMinutes:(null==e?void 0:e.expirationMinutes)||20})};exports.createVisitScopeStrategy=createVisitScopeStrategy;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createVisitScopeStrategy=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),scopeStrategy_1=require("./scopeStrategy"),createVisitScopeStrategy=function(e){return(0,scopeStrategy_1.scopeStrategy)({type:optimize_common_1.Scope.Visit,expirationMinutes:(null==e?void 0:e.expirationMinutes)||20})};exports.createVisitScopeStrategy=createVisitScopeStrategy;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.scoresAreEqual=void 0;var diffScores_1=require("./diffScores"),scoresAreEqual=function(e,r){r=diffScores_1.diffScores(e,r);return!(0<Object.keys(r).length)};exports.scoresAreEqual=scoresAreEqual;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.scoresAreEqual=void 0;var diffScores_1=require("./diffScores"),scoresAreEqual=function(e,r){r=(0,diffScores_1.diffScores)(e,r);return!(0<Object.keys(r).length)};exports.scoresAreEqual=scoresAreEqual;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addBehaviorSignalPlugin=exports.behaviorSignalEvaluator=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),behaviorSignalEvaluator=function(e){var a=e.signal,n=e.behaviors,r=e.intent,l=e.log,t="behaviorSignalEvaluator";if(optimize_common_1.isBehaviorSignal(a)){var g=r.id,v=a.str,s=0;if(n.forEach(function(e,a){var i,o=null===(i=e[g])||void 0===i?void 0:i.str;o&&v&&(i=(e=(Number(o)+Number(v))/2)/n.length,null!=l&&l({level:"verbose",message:"Behavior ["+a+"] "+r.id+" strength: "+i+" - ((baseFromSignal + baseFromTag) / 2) / behQueueCount",region:t,baseFromSignal:v,baseFromTag:o,baseTotal:e,behQueueCount:n.length,final:i}),s+=i)}),0!==s)return 1<n.length&&null!=l&&l({level:"verbose",message:"Total Behavior Signal strength",region:t,resultStrength:s}),{strength:s};0<n.length&&null!=l&&l({level:"verbose",message:"No pending behavior for intent '"+g+"'",region:t,behaviors:n})}else null!=l&&l({level:"warn",message:"Signal is not a behavior signal",region:t})};exports.behaviorSignalEvaluator=behaviorSignalEvaluator;var addBehaviorSignalPlugin=function(){return{name:optimize_common_1.SignalType.Behavior+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Behavior]=exports.behaviorSignalEvaluator,e}}};exports.addBehaviorSignalPlugin=addBehaviorSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addBehaviorSignalPlugin=exports.behaviorSignalEvaluator=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),behaviorSignalEvaluator=function(e){var a=e.signal,n=e.behaviors,r=e.intent,l=e.log,t="behaviorSignalEvaluator";if((0,optimize_common_1.isBehaviorSignal)(a)){var g=r.id,v=a.str,s=0;if(n.forEach(function(e,a){var i,o=null===(i=e[g])||void 0===i?void 0:i.str;o&&v&&(i=(e=(Number(o)+Number(v))/2)/n.length,null!=l&&l({level:"verbose",message:"Behavior ["+a+"] "+r.id+" strength: "+i+" - ((baseFromSignal + baseFromTag) / 2) / behQueueCount",region:t,baseFromSignal:v,baseFromTag:o,baseTotal:e,behQueueCount:n.length,final:i}),s+=i)}),0!==s)return 1<n.length&&null!=l&&l({level:"verbose",message:"Total Behavior Signal strength",region:t,resultStrength:s}),{strength:s};0<n.length&&null!=l&&l({level:"verbose",message:"No pending behavior for intent '"+g+"'",region:t,behaviors:n})}else null!=l&&l({level:"warn",message:"Signal is not a behavior signal",region:t})};exports.behaviorSignalEvaluator=behaviorSignalEvaluator;var addBehaviorSignalPlugin=function(){return{name:optimize_common_1.SignalType.Behavior+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Behavior]=exports.behaviorSignalEvaluator,e}}};exports.addBehaviorSignalPlugin=addBehaviorSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addCookieSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),getCookie=function(e,o){if(o&&o.cookies){e=("; "+o.cookies).split("; "+e+"=");return 2===e.length?e.pop().split(";").shift():void 0}},cookieSignalEvaluator=function(e){var o=e.signal,i=e.requestContext,n=e.log,e="cookieSignalEvaluator";if(optimize_common_1.isCookieSignal(o)){i=getCookie(o.parameter,i);if(i){i=optimize_common_1.isStringMatch(i,o.value);if(i)return null!=n&&n({level:"verbose",message:"Cookie signal is a match",name:o.parameter,strength:o.str,region:e}),{strength:Number(o.str)};null!=n&&n({level:"verbose",message:"Cookie value does not match signal",region:e})}else null!=n&&n({level:"verbose",message:"Cookie '"+o.parameter+"' value is not defined",region:e})}else null!=n&&n({level:"warn",message:"Signal is not a cookie signal",region:e})},addCookieSignalPlugin=function(){return{name:optimize_common_1.SignalType.Cookie+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Cookie]=cookieSignalEvaluator,e}}};exports.addCookieSignalPlugin=addCookieSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addCookieSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),getCookie=function(e,o){if(o&&o.cookies){e=("; "+o.cookies).split("; "+e+"=");return 2===e.length?e.pop().split(";").shift():void 0}},cookieSignalEvaluator=function(e){var o=e.signal,i=e.requestContext,n=e.log,e="cookieSignalEvaluator";if((0,optimize_common_1.isCookieSignal)(o)){i=getCookie(o.parameter,i);if(i){i=(0,optimize_common_1.isStringMatch)(i,o.value);if(i)return null!=n&&n({level:"verbose",message:"Cookie signal is a match",name:o.parameter,strength:o.str,region:e}),{strength:Number(o.str)};null!=n&&n({level:"verbose",message:"Cookie value does not match signal",region:e})}else null!=n&&n({level:"verbose",message:"Cookie '"+o.parameter+"' value is not defined",region:e})}else null!=n&&n({level:"warn",message:"Signal is not a cookie signal",region:e})},addCookieSignalPlugin=function(){return{name:optimize_common_1.SignalType.Cookie+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Cookie]=cookieSignalEvaluator,e}}};exports.addCookieSignalPlugin=addCookieSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addEventSignalPlugin=exports.eventSignalEvaluator=exports.doesValueMatchEventProperty=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),doesValueMatchEventProperty=function(e,n){return!n||!n.expr||!!e&&optimize_common_1.isStringMatch(e,n)};exports.doesValueMatchEventProperty=doesValueMatchEventProperty;var eventSignalEvaluator=function(e){var o=e.signal,n=e.events,r=e.log,l="eventSignalEvaluator";if(optimize_common_1.isEventSignal(o))if(n&&n.length){var i=0,v=!1;if(n.forEach(function(e){var n=exports.doesValueMatchEventProperty(e.label,o.label),t=exports.doesValueMatchEventProperty(e.category,o.category),a=exports.doesValueMatchEventProperty(e.value,o.value);n&&t&&a&&(null!=r&&r({level:"info",message:"Event Match",region:l,event:e,signal:o}),i+=Number(o.str),v=!0)}),v)return{strength:i};null!=r&&r({level:"verbose",message:"No event matches",region:l,signal:o})}else null!=r&&r({level:"verbose",message:"No events to process",region:l});else null!=r&&r({level:"warn",message:"Signal is not an event signal",region:l})};exports.eventSignalEvaluator=eventSignalEvaluator;var addEventSignalPlugin=function(){return{name:optimize_common_1.SignalType.Event+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Event]=exports.eventSignalEvaluator,e}}};exports.addEventSignalPlugin=addEventSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addEventSignalPlugin=exports.eventSignalEvaluator=exports.doesValueMatchEventProperty=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),doesValueMatchEventProperty=function(e,n){return!n||!n.expr||!!e&&(0,optimize_common_1.isStringMatch)(e,n)};exports.doesValueMatchEventProperty=doesValueMatchEventProperty;var eventSignalEvaluator=function(e){var o=e.signal,n=e.events,r=e.log,l="eventSignalEvaluator";if((0,optimize_common_1.isEventSignal)(o))if(n&&n.length){var i=0,v=!1;if(n.forEach(function(e){var n=(0,exports.doesValueMatchEventProperty)(e.label,o.label),t=(0,exports.doesValueMatchEventProperty)(e.category,o.category),a=(0,exports.doesValueMatchEventProperty)(e.value,o.value);n&&t&&a&&(null!=r&&r({level:"info",message:"Event Match",region:l,event:e,signal:o}),i+=Number(o.str),v=!0)}),v)return{strength:i};null!=r&&r({level:"verbose",message:"No event matches",region:l,signal:o})}else null!=r&&r({level:"verbose",message:"No events to process",region:l});else null!=r&&r({level:"warn",message:"Signal is not an event signal",region:l})};exports.eventSignalEvaluator=eventSignalEvaluator;var addEventSignalPlugin=function(){return{name:optimize_common_1.SignalType.Event+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.Event]=exports.eventSignalEvaluator,e}}};exports.addEventSignalPlugin=addEventSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";var __awaiter=this&&this.__awaiter||function(n,o,l,u){return new(l=l||Promise)(function(t,e){function a(n){try{r(u.next(n))}catch(n){e(n)}}function i(n){try{r(u.throw(n))}catch(n){e(n)}}function r(n){var e;n.done?t(n.value):((e=n.value)instanceof l?e:new l(function(n){n(e)})).then(a,i)}r((u=u.apply(n,o||[])).next())})},__generator=this&&this.__generator||function(t,a){var i,r,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},n={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(n[Symbol.iterator]=function(){return this}),n;function e(e){return function(n){return function(e){if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,r&&(o=2&e[0]?r.return:e[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,e[1])).done)return o;switch(r=0,(e=o?[2&e[0],o.value]:e)[0]){case 0:case 1:o=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,r=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(o=0<(o=l.trys).length&&o[o.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]<o[3])){l.label=e[1];break}if(6===e[0]&&l.label<o[1]){l.label=o[1],o=e;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(e);break}o[2]&&l.ops.pop(),l.trys.pop();continue}e=a.call(t,l)}catch(n){e=[6,n],r=0}finally{i=o=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,n])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addLandingPageSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),landingPageSignalEvaluator=function(n){var i=n.signal,r=n.requestContext,o=n.log;return __awaiter(void 0,void 0,void 0,function(){var e,t,a;return __generator(this,function(n){return e="landingPageSignalEvaluator",optimize_common_1.isLandingPageSignal(i)?r&&r.url?(t=new URL(r.url),null!=o&&o({level:"verbose",message:"Checking URL",region:e,url:t.toString(),criteria:i.path}),optimize_common_1.isStringMatch(t.pathname,i.path)?(null!=o&&o({level:"info",message:"URL is a match",region:e,url:t.toString(),criteria:i.path}),a=Number(i.str)):null!=o&&o({level:"info",message:"URL is not a match",region:e,url:t.toString(),criteria:i.path}),[2,{strength:a}]):(null!=o&&o({level:"verbose",message:"Request context not defined",region:e,requestContext:!!r,url:null==r?void 0:r.url}),[2,void 0]):(null!=o&&o({level:"warn",message:"Signal is not an landing page signal",region:e}),[2,void 0])})})},addLandingPageSignalPlugin=function(){return{name:optimize_common_1.SignalType.LandingPage+"-signal",signalEvaluatorMapping:function(){var n={};return n[optimize_common_1.SignalType.LandingPage]=landingPageSignalEvaluator,n}}};exports.addLandingPageSignalPlugin=addLandingPageSignalPlugin;
"use strict";var __awaiter=this&&this.__awaiter||function(n,o,l,u){return new(l=l||Promise)(function(t,e){function a(n){try{r(u.next(n))}catch(n){e(n)}}function i(n){try{r(u.throw(n))}catch(n){e(n)}}function r(n){var e;n.done?t(n.value):((e=n.value)instanceof l?e:new l(function(n){n(e)})).then(a,i)}r((u=u.apply(n,o||[])).next())})},__generator=this&&this.__generator||function(t,a){var i,r,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},n={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(n[Symbol.iterator]=function(){return this}),n;function e(e){return function(n){return function(e){if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,r&&(o=2&e[0]?r.return:e[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,e[1])).done)return o;switch(r=0,(e=o?[2&e[0],o.value]:e)[0]){case 0:case 1:o=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,r=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(o=0<(o=l.trys).length&&o[o.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]<o[3])){l.label=e[1];break}if(6===e[0]&&l.label<o[1]){l.label=o[1],o=e;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(e);break}o[2]&&l.ops.pop(),l.trys.pop();continue}e=a.call(t,l)}catch(n){e=[6,n],r=0}finally{i=o=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,n])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addLandingPageSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),landingPageSignalEvaluator=function(n){var i=n.signal,r=n.requestContext,o=n.log;return __awaiter(void 0,void 0,void 0,function(){var e,t,a;return __generator(this,function(n){return e="landingPageSignalEvaluator",(0,optimize_common_1.isLandingPageSignal)(i)?r&&r.url?(t=new URL(r.url),null!=o&&o({level:"verbose",message:"Checking URL",region:e,url:t.toString(),criteria:i.path}),(0,optimize_common_1.isStringMatch)(t.pathname,i.path)?(null!=o&&o({level:"info",message:"URL is a match",region:e,url:t.toString(),criteria:i.path}),a=Number(i.str)):null!=o&&o({level:"info",message:"URL is not a match",region:e,url:t.toString(),criteria:i.path}),[2,{strength:a}]):(null!=o&&o({level:"verbose",message:"Request context not defined",region:e,requestContext:!!r,url:null==r?void 0:r.url}),[2,void 0]):(null!=o&&o({level:"warn",message:"Signal is not an landing page signal",region:e}),[2,void 0])})})},addLandingPageSignalPlugin=function(){return{name:optimize_common_1.SignalType.LandingPage+"-signal",signalEvaluatorMapping:function(){var n={};return n[optimize_common_1.SignalType.LandingPage]=landingPageSignalEvaluator,n}}};exports.addLandingPageSignalPlugin=addLandingPageSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addPageViewCountSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),pageViewCountSignalEvaluator=function(e){var n=e.signal,i=e.state,a=e.log,o="pageViewCountSignalEvaluator";if(optimize_common_1.isPageViewCountSignal(n)){e=null!==(g=null==i?void 0:i.pageCount)&&void 0!==g?g:0;null!=a&&a({level:"warn",message:"Starting page count",region:o,pageCount:e});i={state:{pageCount:e+1}};null!=a&&a({level:"verbose",message:"Incrementing page count",region:o,pageCount:null===(l=i.state)||void 0===l?void 0:l.pageCount});var l=null!==(g=null==n?void 0:n.min)&&void 0!==g?g:0,g=null!==(g=null==n?void 0:n.max)&&void 0!==g?g:Number.MAX_VALUE;return 0!==g&&!isNaN(g)||(g=Number.MAX_VALUE),null!=a&&a({level:"verbose",message:"Checking if page count is in range",region:o,min:l,max:g}),l<=e&&e<=g?(null!=a&&a({level:"info",message:"Is in range, setting strength",region:o,str:n.str}),i.strength=Number(n.str)):null!=a&&a({level:"verbose",message:"Is not in range, ignoring.",region:o,str:n.str}),i}null!=a&&a({level:"warn",message:"Signal is not a page view count signal",region:o})},addPageViewCountSignalPlugin=function(){return{name:optimize_common_1.SignalType.PageViewCount+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.PageViewCount]=pageViewCountSignalEvaluator,e}}};exports.addPageViewCountSignalPlugin=addPageViewCountSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addPageViewCountSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),pageViewCountSignalEvaluator=function(e){var n=e.signal,i=e.state,a=e.log,o="pageViewCountSignalEvaluator";if((0,optimize_common_1.isPageViewCountSignal)(n)){e=null!==(g=null==i?void 0:i.pageCount)&&void 0!==g?g:0;null!=a&&a({level:"warn",message:"Starting page count",region:o,pageCount:e});i={state:{pageCount:e+1}};null!=a&&a({level:"verbose",message:"Incrementing page count",region:o,pageCount:null===(l=i.state)||void 0===l?void 0:l.pageCount});var l=null!==(g=null==n?void 0:n.min)&&void 0!==g?g:0,g=null!==(g=null==n?void 0:n.max)&&void 0!==g?g:Number.MAX_VALUE;return 0!==g&&!isNaN(g)||(g=Number.MAX_VALUE),null!=a&&a({level:"verbose",message:"Checking if page count is in range",region:o,min:l,max:g}),l<=e&&e<=g?(null!=a&&a({level:"info",message:"Is in range, setting strength",region:o,str:n.str}),i.strength=Number(n.str)):null!=a&&a({level:"verbose",message:"Is not in range, ignoring.",region:o,str:n.str}),i}null!=a&&a({level:"warn",message:"Signal is not a page view count signal",region:o})},addPageViewCountSignalPlugin=function(){return{name:optimize_common_1.SignalType.PageViewCount+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.PageViewCount]=pageViewCountSignalEvaluator,e}}};exports.addPageViewCountSignalPlugin=addPageViewCountSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addPageVisitedSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),pageVisitedSignalEvaluator=function(e){var i=e.signal,n=e.requestContext,t=e.log,a="pageVisitedSignalEvaluator";if(optimize_common_1.isPageVisitedSignal(i))if(n&&n.url){e=new URL(n.url);if(null!=t&&t({level:"verbose",message:"Checking URL",region:a,url:e.toString(),criteria:i.path}),optimize_common_1.isStringMatch(e.pathname,i.path))return null!=t&&t({level:"info",message:"URL is a match",region:a,url:e.toString(),criteria:i.path}),{strength:Number(i.str)};null!=t&&t({level:"info",message:"URL is not a match",region:a,url:e.toString(),criteria:i.path})}else null!=t&&t({level:"verbose",message:"Request context not defined",region:a,requestContext:!!n,url:null==n?void 0:n.url});else null!=t&&t({level:"warn",message:"Signal is not a page visited signal",region:a})},addPageVisitedSignalPlugin=function(){return{name:optimize_common_1.SignalType.PageVisited+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.PageVisited]=pageVisitedSignalEvaluator,e}}};exports.addPageVisitedSignalPlugin=addPageVisitedSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addPageVisitedSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),pageVisitedSignalEvaluator=function(e){var i=e.signal,n=e.requestContext,t=e.log,a="pageVisitedSignalEvaluator";if((0,optimize_common_1.isPageVisitedSignal)(i))if(n&&n.url){e=new URL(n.url);if(null!=t&&t({level:"verbose",message:"Checking URL",region:a,url:e.toString(),criteria:i.path}),(0,optimize_common_1.isStringMatch)(e.pathname,i.path))return null!=t&&t({level:"info",message:"URL is a match",region:a,url:e.toString(),criteria:i.path}),{strength:Number(i.str)};null!=t&&t({level:"info",message:"URL is not a match",region:a,url:e.toString(),criteria:i.path})}else null!=t&&t({level:"verbose",message:"Request context not defined",region:a,requestContext:!!n,url:null==n?void 0:n.url});else null!=t&&t({level:"warn",message:"Signal is not a page visited signal",region:a})},addPageVisitedSignalPlugin=function(){return{name:optimize_common_1.SignalType.PageVisited+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.PageVisited]=pageVisitedSignalEvaluator,e}}};exports.addPageVisitedSignalPlugin=addPageVisitedSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addQueryStringSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),queryStringSignalEvaluator=function(e){var r=e.signal,n=e.requestContext,i=e.log,a="queryStringSignalEvaluator";if(optimize_common_1.isQueryStringSignal(r))if(n&&n.url){var t=new URL(n.url),e=t.searchParams.get(r.parameter);if(e){if(optimize_common_1.isStringMatch(e,r.value))return null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' matches",region:a,url:t.toString(),parameter:r.parameter}),{strength:Number(r.str)};null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' is not a match",region:a,parameterValue:e,criteria:r.value})}else null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' not defined",region:a,url:t.toString()})}else null!=i&&i({level:"verbose",message:"Request context not defined",region:a,requestContext:!!n,url:null==n?void 0:n.url});else null!=i&&i({level:"warn",message:"Signal is not a query string signal",region:a})},addQueryStringSignalPlugin=function(){return{name:optimize_common_1.SignalType.QueryString+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.QueryString]=queryStringSignalEvaluator,e.UTM=queryStringSignalEvaluator,e}}};exports.addQueryStringSignalPlugin=addQueryStringSignalPlugin;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addQueryStringSignalPlugin=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),queryStringSignalEvaluator=function(e){var r=e.signal,n=e.requestContext,i=e.log,a="queryStringSignalEvaluator";if((0,optimize_common_1.isQueryStringSignal)(r))if(n&&n.url){var t=new URL(n.url),e=t.searchParams.get(r.parameter);if(e){if((0,optimize_common_1.isStringMatch)(e,r.value))return null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' matches",region:a,url:t.toString(),parameter:r.parameter}),{strength:Number(r.str)};null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' is not a match",region:a,parameterValue:e,criteria:r.value})}else null!=i&&i({level:"verbose",message:"Query string value '"+r.parameter+"' not defined",region:a,url:t.toString()})}else null!=i&&i({level:"verbose",message:"Request context not defined",region:a,requestContext:!!n,url:null==n?void 0:n.url});else null!=i&&i({level:"warn",message:"Signal is not a query string signal",region:a})},addQueryStringSignalPlugin=function(){return{name:optimize_common_1.SignalType.QueryString+"-signal",signalEvaluatorMapping:function(){var e={};return e[optimize_common_1.SignalType.QueryString]=queryStringSignalEvaluator,e.UTM=queryStringSignalEvaluator,e}}};exports.addQueryStringSignalPlugin=addQueryStringSignalPlugin;

@@ -1,1 +0,1 @@

"use strict";var __awaiter=this&&this.__awaiter||function(t,a,u,c){return new(u=u||Promise)(function(n,e){function r(t){try{o(c.next(t))}catch(t){e(t)}}function i(t){try{o(c.throw(t))}catch(t){e(t)}}function o(t){var e;t.done?n(t.value):((e=t.value)instanceof u?e:new u(function(t){t(e)})).then(r,i)}o((c=c.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(n,r){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&e[0]?o.return:e[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,e[1])).done)return a;switch(o=0,(e=a?[2&e[0],a.value]:e)[0]){case 0:case 1:a=e;break;case 4:return u.label++,{value:e[1],done:!1};case 5:u.label++,o=e[1],e=[0];continue;case 7:e=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){u=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){u.label=e[1];break}if(6===e[0]&&u.label<a[1]){u.label=a[1],a=e;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(e);break}a[2]&&u.ops.pop(),u.trys.pop();continue}e=r.call(n,u)}catch(t){e=[6,t],o=0}finally{i=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}},__spreadArray=this&&this.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.compositeScopeStorage=void 0;var utils_1=require("./utils"),compositeScopeStorage=function(t){var a,r=t.storage;return r.forEach(function(t,e){var n=function(i){var o=this;return function(e,n){for(var r=[],t=2;t<arguments.length;t++)r[t-2]=arguments[t];return __awaiter(o,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,Promise.all(i.map(function(t){return t.setScoring(n,e)}))];case 1:return t.sent(),[4,null==a?void 0:a.apply(void 0,__spreadArray([e,n],r))];case 2:return t.sent(),[2]}})})}}(r.slice(0,e));null!==(e=t.setScoringValueExternallyUpdatedCallback)&&void 0!==e&&e.call(t,n)}),{id:"Composite ("+r.map(function(t){return null!==(t=null==t?void 0:t.id)&&void 0!==t?t:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.waitAll(r,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})},getScope:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.returnFirstNonFalsy(r,function(t){return t.getScope.apply(t,e)})];case 1:return[2,t.sent()]}})})},setScope:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.waitFirstFireRest(r,function(t){return t.setScope.apply(t,e)})];case 1:return t.sent(),[2]}})})},getScoring:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.returnFirstNonFalsy(r,function(t){return t.getScoring.apply(t,e)})];case 1:return[2,t.sent()]}})})},setScoring:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.waitFirstFireRest(r,function(t){return t.setScoring.apply(t,e)})];case 1:return t.sent(),[2]}})})},identify:function(n){return __awaiter(void 0,void 0,void 0,function(){var e;return __generator(this,function(t){switch(t.label){case 0:return 0===(e=r.filter(function(t){return t.identify})).length&&console.warn("Visitor was identified, but no composite storage implements identification"),[4,Promise.all(e.map(function(t){return t.identify(n)}))];case 1:return e=t.sent(),[2,null===(e=e.filter(function(t){return t}))||void 0===e?void 0:e[0]]}})})},setScoringValueExternallyUpdatedCallback:function(t){return a=t}}};exports.compositeScopeStorage=compositeScopeStorage;
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,u,c){return new(u=u||Promise)(function(n,e){function r(t){try{o(c.next(t))}catch(t){e(t)}}function i(t){try{o(c.throw(t))}catch(t){e(t)}}function o(t){var e;t.done?n(t.value):((e=t.value)instanceof u?e:new u(function(t){t(e)})).then(r,i)}o((c=c.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(n,r){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&e[0]?o.return:e[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,e[1])).done)return a;switch(o=0,(e=a?[2&e[0],a.value]:e)[0]){case 0:case 1:a=e;break;case 4:return u.label++,{value:e[1],done:!1};case 5:u.label++,o=e[1],e=[0];continue;case 7:e=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){u=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){u.label=e[1];break}if(6===e[0]&&u.label<a[1]){u.label=a[1],a=e;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(e);break}a[2]&&u.ops.pop(),u.trys.pop();continue}e=r.call(n,u)}catch(t){e=[6,t],o=0}finally{i=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}},__spreadArray=this&&this.__spreadArray||function(t,e,n){if(n||2===arguments.length)for(var r,i=0,o=e.length;i<o;i++)!r&&i in e||((r=r||Array.prototype.slice.call(e,0,i))[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.compositeScopeStorage=void 0;var utils_1=require("./utils"),compositeScopeStorage=function(t){var a,r=t.storage;return r.forEach(function(t,e){var n=function(i){var o=this;return function(e,n){for(var r=[],t=2;t<arguments.length;t++)r[t-2]=arguments[t];return __awaiter(o,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,Promise.all(i.map(function(t){return t.setScoring(n,e)}))];case 1:return t.sent(),[4,null==a?void 0:a.apply(void 0,__spreadArray([e,n],r,!1))];case 2:return t.sent(),[2]}})})}}(r.slice(0,e));null!==(e=t.setScoringValueExternallyUpdatedCallback)&&void 0!==e&&e.call(t,n)}),{id:"Composite ("+r.map(function(t){return null!==(t=null==t?void 0:t.id)&&void 0!==t?t:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.waitAll)(r,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})},getScope:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.returnFirstNonFalsy)(r,function(t){return t.getScope.apply(t,e)})];case 1:return[2,t.sent()]}})})},setScope:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.waitFirstFireRest)(r,function(t){return t.setScope.apply(t,e)})];case 1:return t.sent(),[2]}})})},getScoring:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.returnFirstNonFalsy)(r,function(t){return t.getScoring.apply(t,e)})];case 1:return[2,t.sent()]}})})},setScoring:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.waitFirstFireRest)(r,function(t){return t.setScoring.apply(t,e)})];case 1:return t.sent(),[2]}})})},identify:function(n){return __awaiter(void 0,void 0,void 0,function(){var e;return __generator(this,function(t){switch(t.label){case 0:return 0===(e=r.filter(function(t){return t.identify})).length&&console.warn("Visitor was identified, but no composite storage implements identification"),[4,Promise.all(e.map(function(t){return t.identify(n)}))];case 1:return e=t.sent(),[2,null===(e=e.filter(function(t){return t}))||void 0===e?void 0:e[0]]}})})},setScoringValueExternallyUpdatedCallback:function(t){return a=t}}};exports.compositeScopeStorage=compositeScopeStorage;

@@ -1,1 +0,1 @@

"use strict";var __awaiter=this&&this.__awaiter||function(t,a,u,s){return new(u=u||Promise)(function(n,e){function r(t){try{i(s.next(t))}catch(t){e(t)}}function o(t){try{i(s.throw(t))}catch(t){e(t)}}function i(t){var e;t.done?n(t.value):((e=t.value)instanceof u?e:new u(function(t){t(e)})).then(r,o)}i((s=s.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(n,r){var o,i,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(o)throw new TypeError("Generator is already executing.");for(;u;)try{if(o=1,i&&(a=2&e[0]?i.return:e[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,e[1])).done)return a;switch(i=0,(e=a?[2&e[0],a.value]:e)[0]){case 0:case 1:a=e;break;case 4:return u.label++,{value:e[1],done:!1};case 5:u.label++,i=e[1],e=[0];continue;case 7:e=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){u=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){u.label=e[1];break}if(6===e[0]&&u.label<a[1]){u.label=a[1],a=e;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(e);break}a[2]&&u.ops.pop(),u.trys.pop();continue}e=r.call(n,u)}catch(t){e=[6,t],i=0}finally{o=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.compositeTestStorage=void 0;var utils_1=require("./utils"),compositeTestStorage=function(t){var n=t.storage;return{id:"Composite ("+n.map(function(t){return t.id}).join(", ")+")",getTestSelection:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.returnFirstNonFalsy(n,function(t){return t.getTestSelection.apply(t,e)})];case 1:return[2,t.sent()]}})})},setTestSelection:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.waitFirstFireRest(n,function(t){return t.setTestSelection.apply(t,e)})];case 1:return t.sent(),[2]}})})},delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,utils_1.waitAll(n,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})}}};exports.compositeTestStorage=compositeTestStorage;
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,u,s){return new(u=u||Promise)(function(n,e){function r(t){try{i(s.next(t))}catch(t){e(t)}}function o(t){try{i(s.throw(t))}catch(t){e(t)}}function i(t){var e;t.done?n(t.value):((e=t.value)instanceof u?e:new u(function(t){t(e)})).then(r,o)}i((s=s.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(n,r){var o,i,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(o)throw new TypeError("Generator is already executing.");for(;u;)try{if(o=1,i&&(a=2&e[0]?i.return:e[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,e[1])).done)return a;switch(i=0,(e=a?[2&e[0],a.value]:e)[0]){case 0:case 1:a=e;break;case 4:return u.label++,{value:e[1],done:!1};case 5:u.label++,i=e[1],e=[0];continue;case 7:e=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){u=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){u.label=e[1];break}if(6===e[0]&&u.label<a[1]){u.label=a[1],a=e;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(e);break}a[2]&&u.ops.pop(),u.trys.pop();continue}e=r.call(n,u)}catch(t){e=[6,t],i=0}finally{o=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.compositeTestStorage=void 0;var utils_1=require("./utils"),compositeTestStorage=function(t){var n=t.storage;return{id:"Composite ("+n.map(function(t){return t.id}).join(", ")+")",getTestSelection:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.returnFirstNonFalsy)(n,function(t){return t.getTestSelection.apply(t,e)})];case 1:return[2,t.sent()]}})})},setTestSelection:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.waitFirstFireRest)(n,function(t){return t.setTestSelection.apply(t,e)})];case 1:return t.sent(),[2]}})})},delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,(0,utils_1.waitAll)(n,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})}}};exports.compositeTestStorage=compositeTestStorage;

@@ -1,1 +0,1 @@

"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,u,l){return new(u=u||Promise)(function(t,r){function n(e){try{o(l.next(e))}catch(e){r(e)}}function a(e){try{o(l.throw(e))}catch(e){r(e)}}function o(e){var r;e.done?t(e.value):((r=e.value)instanceof u?r:new u(function(e){e(r)})).then(n,a)}o((l=l.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(t,n){var a,o,i,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},e={next:r(0),throw:r(1),return:r(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function r(r){return function(e){return function(r){if(a)throw new TypeError("Generator is already executing.");for(;u;)try{if(a=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,(r=i?[2&r[0],i.value]:r)[0]){case 0:case 1:i=r;break;case 4:return u.label++,{value:r[1],done:!1};case 5:u.label++,o=r[1],r=[0];continue;case 7:r=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===r[0]||2===r[0])){u=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){u.label=r[1];break}if(6===r[0]&&u.label<i[1]){u.label=i[1],i=r;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(r);break}i[2]&&u.ops.pop(),u.trys.pop();continue}r=n.call(t,u)}catch(e){r=[6,e],o=0}finally{a=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.manualExternalTriggerScopeStorage=void 0;var inMemory_1=require("../../inMemory");function manualExternalTriggerScopeStorage(){var n,e=this,r=inMemory_1.inMemoryScopeStorage();return __assign(__assign({},r),{setScoringValueExternallyUpdatedCallback:function(e){return n=e},triggerExternalScoringUpdate:function(r,t){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,null==n?void 0:n(r,t)];case 1:return[2,e.sent()]}})})}})}exports.manualExternalTriggerScopeStorage=manualExternalTriggerScopeStorage;
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,u,l){return new(u=u||Promise)(function(t,r){function n(e){try{o(l.next(e))}catch(e){r(e)}}function a(e){try{o(l.throw(e))}catch(e){r(e)}}function o(e){var r;e.done?t(e.value):((r=e.value)instanceof u?r:new u(function(e){e(r)})).then(n,a)}o((l=l.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(t,n){var a,o,i,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},e={next:r(0),throw:r(1),return:r(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function r(r){return function(e){return function(r){if(a)throw new TypeError("Generator is already executing.");for(;u;)try{if(a=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,(r=i?[2&r[0],i.value]:r)[0]){case 0:case 1:i=r;break;case 4:return u.label++,{value:r[1],done:!1};case 5:u.label++,o=r[1],r=[0];continue;case 7:r=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===r[0]||2===r[0])){u=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){u.label=r[1];break}if(6===r[0]&&u.label<i[1]){u.label=i[1],i=r;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(r);break}i[2]&&u.ops.pop(),u.trys.pop();continue}r=n.call(t,u)}catch(e){r=[6,e],o=0}finally{a=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.manualExternalTriggerScopeStorage=void 0;var inMemory_1=require("../../inMemory");function manualExternalTriggerScopeStorage(){var n,e=this,r=(0,inMemory_1.inMemoryScopeStorage)();return __assign(__assign({},r),{setScoringValueExternallyUpdatedCallback:function(e){return n=e},triggerExternalScoringUpdate:function(r,t){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,null==n?void 0:n(r,t)];case 1:return[2,e.sent()]}})})}})}exports.manualExternalTriggerScopeStorage=manualExternalTriggerScopeStorage;

@@ -1,1 +0,1 @@

"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,a,u,c){return new(u=u||Promise)(function(r,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function i(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,i)}o((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&t[0]?o.return:t[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;switch(o=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){u.label=t[1];break}if(6===t[0]&&u.label<a[1]){u.label=a[1],a=t;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(t);break}a[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.tieredScopeStorage=void 0;var scoresAreEqual_1=require("../../scoring/scoresAreEqual"),cloneScore_1=require("../../scoring/cloneScore"),combineScores_1=require("../../scoring/combineScores"),diffScores_1=require("../../scoring/diffScores"),utils_1=require("../composite/utils"),tieredScopeStorage=function(e){var u,c=e.tiers,s=c,l=[];return s.forEach(function(e,t){var r=function(a){var e=this;return function(i,o){return __awaiter(e,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return t=cloneScore_1.cloneScore(o.values),r=o.updated,l.forEach(function(e){e.time<=o.updated||(e.time>r&&(r=e.time),t=combineScores_1.combineScores(t,e.diff))}),n=__assign(__assign({},o),{updated:r,values:t}),[4,Promise.all(a.map(function(e){return e.storage.setScoring(n,i)}))];case 1:return e.sent(),[4,null==u?void 0:u(i,n)];case 2:return e.sent(),[2]}})})}}(c.slice(0,t));e.__callback=r,null!==(e=(t=e.storage).setScoringValueExternallyUpdatedCallback)&&void 0!==e&&e.call(t,r)}),{id:"Tiered ("+c.map(function(e){return null!==(e=null===(e=e.storage)||void 0===e?void 0:e.id)&&void 0!==e?e:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return l=[],[4,utils_1.waitAll(c,function(e){return e.storage.delete()})];case 1:return e.sent(),[2]}})})},getScope:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,utils_1.returnFirstNonFalsy(c,function(e){return(e=e.storage).getScope.apply(e,t)})];case 1:return[2,e.sent()]}})})},setScope:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,utils_1.waitFirstFireRest(c,function(e){return(e=e.storage).setScope.apply(e,t)})];case 1:return e.sent(),[2]}})})},getScoring:function(){for(var a=[],e=0;e<arguments.length;e++)a[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:t=function(t){var r,n,i;return __generator(this,function(e){switch(e.label){case 0:return r=s[t],o&&!r.loading?[2,{value:o}]:o&&"await"!==r.loading?[3,2]:[4,(i=r.storage).getScoring.apply(i,a)];case 1:return(i=e.sent())&&(o=i),[2,"continue"];case 2:return n=o,r.storage.getScoring(a[0]).then(function(e){if(e&&!scoresAreEqual_1.scoresAreEqual(n.values,e.values))return r.__callback(a[0],e)}),[2]}})},r=0,e.label=1;case 1:return r<c.length?[5,t(r)]:[3,4];case 2:if("object"==typeof(n=e.sent()))return[2,n.value];e.label=3;case 3:return r++,[3,1];case 4:return[2,o]}})})},setScoring:function(n,i,o,a,u){return __awaiter(void 0,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:return t=diffScores_1.diffScores(null==n?void 0:n.values,null==a?void 0:a.values),0<Object.keys(t).length&&l.push({time:null!==(r=null==n?void 0:n.updated)&&void 0!==r?r:(new Date).getTime(),diff:t}),[4,utils_1.waitFirstFireRest(c,function(e){return e.storage.setScoring(n,i,o,a,u)})];case 1:return e.sent(),[2]}})})},identify:function(r){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return 0===(t=c.filter(function(e){return e.storage.identify})).length&&console.warn("Visitor was identified, but no storage tier implemented identification"),[4,Promise.all(t.map(function(e){return e.storage.identify(r)}))];case 1:return t=e.sent(),[2,null===(t=t.filter(function(e){return e}))||void 0===t?void 0:t[0]]}})})},setScoringValueExternallyUpdatedCallback:function(e){return u=e}}};exports.tieredScopeStorage=tieredScopeStorage;
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,a,u,c){return new(u=u||Promise)(function(r,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function i(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,i)}o((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&t[0]?o.return:t[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;switch(o=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){u.label=t[1];break}if(6===t[0]&&u.label<a[1]){u.label=a[1],a=t;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(t);break}a[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.tieredScopeStorage=void 0;var scoresAreEqual_1=require("../../scoring/scoresAreEqual"),cloneScore_1=require("../../scoring/cloneScore"),combineScores_1=require("../../scoring/combineScores"),diffScores_1=require("../../scoring/diffScores"),utils_1=require("../composite/utils"),tieredScopeStorage=function(e){var u,c=e.tiers,s=c,l=[];return s.forEach(function(e,t){var r=function(a){var e=this;return function(i,o){return __awaiter(e,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return t=(0,cloneScore_1.cloneScore)(o.values),r=o.updated,l.forEach(function(e){e.time<=o.updated||(e.time>r&&(r=e.time),t=(0,combineScores_1.combineScores)(t,e.diff))}),n=__assign(__assign({},o),{updated:r,values:t}),[4,Promise.all(a.map(function(e){return e.storage.setScoring(n,i)}))];case 1:return e.sent(),[4,null==u?void 0:u(i,n)];case 2:return e.sent(),[2]}})})}}(c.slice(0,t));e.__callback=r,null!==(e=(t=e.storage).setScoringValueExternallyUpdatedCallback)&&void 0!==e&&e.call(t,r)}),{id:"Tiered ("+c.map(function(e){return null!==(e=null===(e=e.storage)||void 0===e?void 0:e.id)&&void 0!==e?e:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return l=[],[4,(0,utils_1.waitAll)(c,function(e){return e.storage.delete()})];case 1:return e.sent(),[2]}})})},getScope:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,(0,utils_1.returnFirstNonFalsy)(c,function(e){return(e=e.storage).getScope.apply(e,t)})];case 1:return[2,e.sent()]}})})},setScope:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,(0,utils_1.waitFirstFireRest)(c,function(e){return(e=e.storage).setScope.apply(e,t)})];case 1:return e.sent(),[2]}})})},getScoring:function(){for(var a=[],e=0;e<arguments.length;e++)a[e]=arguments[e];return __awaiter(void 0,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:t=function(t){var r,n,i;return __generator(this,function(e){switch(e.label){case 0:return r=s[t],o&&!r.loading?[2,{value:o}]:o&&"await"!==r.loading?[3,2]:[4,(i=r.storage).getScoring.apply(i,a)];case 1:return(i=e.sent())&&(o=i),[2,"continue"];case 2:return n=o,r.storage.getScoring(a[0]).then(function(e){if(e&&!(0,scoresAreEqual_1.scoresAreEqual)(n.values,e.values))return r.__callback(a[0],e)}),[2]}})},r=0,e.label=1;case 1:return r<c.length?[5,t(r)]:[3,4];case 2:if("object"==typeof(n=e.sent()))return[2,n.value];e.label=3;case 3:return r++,[3,1];case 4:return[2,o]}})})},setScoring:function(n,i,o,a,u){return __awaiter(void 0,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:return t=(0,diffScores_1.diffScores)(null==n?void 0:n.values,null==a?void 0:a.values),0<Object.keys(t).length&&l.push({time:null!==(r=null==n?void 0:n.updated)&&void 0!==r?r:(new Date).getTime(),diff:t}),[4,(0,utils_1.waitFirstFireRest)(c,function(e){return e.storage.setScoring(n,i,o,a,u)})];case 1:return e.sent(),[2]}})})},identify:function(r){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return 0===(t=c.filter(function(e){return e.storage.identify})).length&&console.warn("Visitor was identified, but no storage tier implemented identification"),[4,Promise.all(t.map(function(e){return e.storage.identify(r)}))];case 1:return t=e.sent(),[2,null===(t=t.filter(function(e){return e}))||void 0===t?void 0:t[0]]}})})},setScoringValueExternallyUpdatedCallback:function(e){return u=e}}};exports.tieredScopeStorage=tieredScopeStorage;

@@ -1,1 +0,1 @@

"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,a,u){return new(a=a||Promise)(function(n,t){function i(e){try{s(u.next(e))}catch(e){t(e)}}function r(e){try{s(u.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(i,r)}s((u=u.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,s,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,s&&(o=2&t[0]?s.return:t[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,t[1])).done)return o;switch(s=0,(t=o?[2&t[0],o.value]:t)[0]){case 0:case 1:o=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,s=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(o=0<(o=a.trys).length&&o[o.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!o||t[1]>o[0]&&t[1]<o[3])){a.label=t[1];break}if(6===t[0]&&a.label<o[1]){a.label=o[1],o=t;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(t);break}o[2]&&a.ops.pop(),a.trys.pop();continue}t=i.call(n,a)}catch(e){t=[6,e],s=0}finally{r=o=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}},__rest=this&&this.__rest||function(e,t){var n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},__spreadArray=this&&this.__spreadArray||function(e,t){for(var n=0,i=t.length,r=e.length;n<i;n++,r++)e[r]=t[n];return e};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OptimizeTracker=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),decayByDayStrategy_1=require("./decay/decayByDayStrategy"),cumulativeScoringStrategy_1=require("./scoring/cumulativeScoringStrategy"),utils_1=require("./utils"),combineScores_1=require("./scoring/combineScores"),diffScores_1=require("./scoring/diffScores"),scoresAreEqual_1=require("./scoring/scoresAreEqual"),scoreIsEmpty_1=require("./scoring/scoreIsEmpty"),OptimizeTracker=function(){function e(e){var t;this._intentMappings=[],this._behaviorQueue=[],this._behaviorKeys={},this._events=[],this._listeners=[],this._testSettings=[],this._signalEvaluators={},this._initialized=!1,this._lastBroadcastScoring=void 0,this._intentManifest=e.intentManifest,e.intentManifest&&this.addIntents(e.intentManifest.site.intents),this._plugins=e.plugins,this._storage=e.storage,this._scopeStrategies=e.scopes,this._scoringStrategy=null!==(t=e.scoring)&&void 0!==t?t:cumulativeScoringStrategy_1.cumulativeScoringStrategy(),this._decayStrategy=null!==(t=e.decay)&&void 0!==t?t:decayByDayStrategy_1.decayByDayStrategy(),this._serverState=this.getServerState(),e.testing&&(t=Array.isArray(e.testing)?e.testing:[e.testing],(e=this._testSettings).push.apply(e,t))}return e.prototype.initialize=function(){var n,i;return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(e){switch(e.label){case 0:return this.log({level:"info",message:"Received intent manifest",region:"initialize",intents:this._intentManifest}),[4,this.initializeScopes()];case 1:return e.sent(),[4,this.loadPlugins()];case 2:return e.sent(),this._signalEvaluators=this.loadSignalEvaluators(),null!==(i=(n=this._storage.scopes).setScoringValueExternallyUpdatedCallback)&&void 0!==i&&i.call(n,function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.broadcastScoring()];case 1:return e.sent(),[2]}})})}),this._lastBroadcastScoring=void 0,this._initialized=!0,[2]}})})},e.prototype.isInitialized=function(){return this._initialized},e.prototype.getIntentStrength=function(n){return __awaiter(this,void 0,void 0,function(){var t,i,r=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(n),i={},[4,Promise.all(t.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),i[n]=t,[2]}})})}))];case 1:return e.sent(),[2,this.combineScoring(i)]}})})},e.prototype.getIntentStrengthSingle=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.getIntentStrength(i)];case 1:return[2,null==(t=e.sent())?void 0:t[n]]}})})},e.prototype.addIntentStrength=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),[4,this.applyScoringStrategy(n,t,i,1)];case 2:return e.sent(),[4,this.broadcastScoring()];case 3:return e.sent(),[2]}})})},e.prototype.setIntentStrength=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.applyScoringStrategy(t,void 0,n,1)];case 1:return e.sent(),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.removeIntent=function(a,u){return __awaiter(this,void 0,void 0,function(){var t,s,o,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(null==u?void 0:u.scope),s="string"==typeof a?[a]:a,o=!1,[4,Promise.all(t.map(function(r){return __awaiter(n,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())?(i=!(n={}),Object.keys(t.values).map(function(e){a&&-1===(null==s?void 0:s.indexOf(e))?n[e]=t.values[e]:o=i=!0}),i?[4,this.writeScoring(r,__assign(__assign({},t),{values:n}),t)]:[3,4]):[3,4];case 2:return e.sent(),null!=u&&u.quiet?[3,4]:[4,this.broadcastScoring()];case 3:e.sent(),e.label=4;case 4:return[2]}})})}))];case 1:return e.sent(),[2,o]}})})},e.prototype.addScoringChangeListener=function(e){this._listeners.push(e)},e.prototype.removeScoringChangeListener=function(e){e=this._listeners.indexOf(e);-1<e&&this._listeners.splice(e,1)},e.prototype.reevaluateSignals=function(c){return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,u,l=this;return __generator(this,function(e){switch(e.label){case 0:return(t="reevaluateSignals",this.log({level:"verbose",message:"Signals reevaluating...",region:t}),this._intentMappings&&this._intentMappings.length)?(n={},[4,Promise.all(this.getAllScopeStrategies().map(function(e){return e.get().then(function(e){e&&(n[null==e?void 0:e.type]=e)})}))]):(this.log({level:"warn",message:"Intents list is empty",region:t}),[2,{signalMatches:{}}]);case 1:return e.sent(),i=Object.keys(this._behaviorKeys),r=0===i.length?this._behaviorQueue:__spreadArray(__spreadArray([],this._behaviorQueue),i.map(function(e){return l._behaviorKeys[e]})),[4,Promise.all(this._intentMappings.map(function(e){return l.reevaluateIntent({intent:e,scopes:n,requestContext:c,behaviorQueue:r})}))];case 2:return s=e.sent(),s=s.flatMap(function(e){return e}),o=s.reduce(function(e,t){if(!t.statsScope||!t.statistics||!t.signal)return e;var n=t.statsScope.type;return(e[n]=null!==(n=e[n])&&void 0!==n?n:{})[t.signal.id]=t.statistics,e},{}),[4,Promise.all(Object.keys(o).map(function(e){var t;return null===(t=l.getScopeStrategy(e))||void 0===t?void 0:t.save(__assign(__assign({},n[e]),{statistics:__assign(__assign({},n[e].statistics||{}),o[e])}))}))];case 3:return e.sent(),a=this.processSignalEvaluations(s),[4,this.applySignalEvaluationSummary(a)];case 4:return u=e.sent(),[4,this.broadcastScoring(u)];case 5:return e.sent(),this.clearBehaviorQueue(),this.clearEventQueue(),this.log(__assign({level:"info",message:"Reevaluated signals",region:t},u)),[2,{scoring:u,signalMatches:Object.keys(a).reduce(function(e,t){return e[t]=a[t].matches,e},{})}]}})})},e.prototype.addBehaviorActivity=function(e,t){this.log(__assign(__assign({level:"verbose",region:"addBehaviorActivity",message:"Behavior activity added to queue"},e),{sourceKey:t})),t?this._behaviorKeys[t]=e:this._behaviorQueue.push(e)},e.prototype.addEvent=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._events.push(t),n&&void 0!==n.quiet&&n.quiet?[3,2]:[4,this.reevaluateSignals()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.getEnrichmentValues=function(r,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(e){switch(e.label){case 0:return this.isKnownEnrichment(r)?[4,this.getIntentStrength(null==t?void 0:t.scope)]:[2,void 0];case 1:return i=e.sent()||{},[2,Object.keys(i||{}).reduce(function(e,t){var n=utils_1.getEnrichmentValue(r,t);return n&&i[t].str&&(e[n]=Number(i[t].str||0)),e},{})]}})})},e.prototype.addEnrichment=function(v,p){var _;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,u,l,c,g,h;return __generator(this,function(e){switch(e.label){case 0:for(t=(null==p?void 0:p.scope)||optimize_common_1.Scope.Visitor,n=Array.isArray(v)?v:[v],i={},r={},s=0,o=n;s<o.length;s++)a=o[s],this.isKnownEnrichment(a.name)&&(u=utils_1.calculateEnrichmentIntentName(a.name,a.value),null!=p&&p.clearValues&&(r[a.name]=!0),l=Number((null===(_=i[u])||void 0===_?void 0:_.str)||0),i[u]={str:l+(a.str||optimize_common_1.IntentTagStrength.Normal)});c=0,g=Object.keys(r),e.label=1;case 1:return c<g.length?(h=g[c],[4,this.removeEnrichment(h,{scope:t,quiet:!0})]):[3,4];case 2:e.sent(),e.label=3;case 3:return c++,[3,1];case 4:return[4,this.readScoring(t)];case 5:return h=e.sent(),[4,this.applyScoringStrategy(t,h,i,n.length)];case 6:return e.sent(),null!=p&&p.quiet?[3,8]:[4,this.reevaluateSignals()];case 7:e.sent(),e.label=8;case 8:return[2]}})})},e.prototype.removeEnrichment=function(i,r){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return t=(null==r?void 0:r.scope)||optimize_common_1.Scope.Visitor,[4,this.getIntentStrength(t)];case 1:return n=e.sent()||{},n=Object.keys(n||{}).filter(function(e){if(utils_1.getEnrichmentValue(i,e))return e},{}),[4,this.removeIntent(n,{scope:t,quiet:null==r?void 0:r.quiet})];case 2:return e.sent(),[2]}})})},e.prototype.trackPersonalization=function(t,n){var e;t&&null!==(e=this._plugins)&&void 0!==e&&e.track(function(e){return e(t,n)})},e.prototype.isInPersonalizationControlGroup=function(o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return(t=(r=o||{}).scope,n=r.sampleSize,i=new Date,r=this._testSettings.find(function(e){return e.strategy&&(!e.endDate||e.endDate>i)}))?(s=null!=t?t:optimize_common_1.Scope.Visitor,[4,null===(a=this.getScopeStrategy(s))||void 0===a?void 0:a.get()]):[2,!1];case 1:return s=e.sent(),[2,r.strategy.isInPersonalizationControlGroup(s,n)]}})})},e.prototype.getTestValue=function(t){var e=null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t});return null!=e&&e.winning_variation_id?Promise.resolve(e.winning_variation_id):null!==(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)&&void 0!==e&&e[t]?Promise.resolve(null===(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)||void 0===e?void 0:e[t]):this._storage.tests.getTestSelection(t)},e.prototype.setTestValue=function(t,e){var n=null===(n=null===(n=this._intentManifest)||void 0===n?void 0:n.site.tests)||void 0===n?void 0:n.find(function(e){return e.name===t});return null!=n&&n.winning_variation_id?Promise.resolve():this._storage.tests.setTestSelection(t,e)},e.prototype.isTestEnabled=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e.prototype.identify=function(r){var s;return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return(t=null===(s=this._storage)||void 0===s?void 0:s.scopes.identify)?[4,this._storage.scopes.getScoring(optimize_common_1.Scope.Visitor)]:(this.log({region:"identify",level:"warn",message:"Visitor was identified, but storage did not implement identification"}),[2]);case 1:return n=e.sent(),[4,t(r)];case 2:return(i=e.sent())?[4,this.writeScoring(optimize_common_1.Scope.Visitor,i,n)]:[3,5];case 3:return e.sent(),[4,this.broadcastScoring()];case 4:e.sent(),e.label=5;case 5:return[2]}})})},e.prototype.forgetMe=function(t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.all([this._storage.scopes.delete(t),this._storage.tests.delete()])];case 1:return e.sent(),this.log({level:"info",region:"forgetMe",message:"Visitor has been forgotten (allDevices: "+t+")"}),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.log=function(t){var e;null!==(e=this._plugins)&&void 0!==e&&e.log(function(e){return e(t)})},e.prototype.reevaluateSignal=function(e){var u,l=e.intent,c=e.scopes,g=e.signal,h=e.requestContext,v=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a;return __generator(this,function(e){switch(e.label){case 0:return t="reevaluateSignal",[4,this.resolveFrequencyScope(g,c)];case 1:return n=e.sent(),[4,this.determineIfSignalShouldEvaluate(g,n)];case 2:return e.sent()?(i=this._signalEvaluators[g.type])?(g.str||g.str===optimize_common_1.IntentTagStrength.Antimatter||(this.log({level:"warn",message:"Strength not defined on signal, setting strength to "+optimize_common_1.IntentTagStrength.Normal,region:t}),g.str=optimize_common_1.IntentTagStrength.Normal),[4,this.resolveScope(g.scope,c)]):(this.log({level:"warn",message:"Signal "+g.type+" not handled by any plugin. It will be ignored.",region:t}),[2,void 0]):(this.log({level:"info",message:"Signal "+g.id+" will not evaluate",region:t}),[2,void 0]);case 3:return r=e.sent(),a=this.resolveSignalStorage(r,g),s={intent:l,signal:g,scope:r,statsScope:n},a={signal:g,intent:l,behaviors:v,state:a,requestContext:h||utils_1.getBrowserRequestContext(),events:this._events,log:this.log.bind(this)},__rest(a,["requestContext","log"]),a=i(a),[4,Promise.resolve(a)];case 4:return o=e.sent(),this.log({level:"verbose",message:g.type+" Signal evaluation result: "+(null!=o&&o.strength?o.strength:"no match"),region:t,signal:g,intent:l,result:o}),void 0===(s.result=o)?[2,s]:g.id?[4,this.resolveFrequencyScope(g,c)]:[3,6];case 5:return(a=e.sent())&&(s.statistics=__assign(__assign({},null===(u=a.statistics)||void 0===u?void 0:u[g.id]),{evaluations:((null===(u=null===(u=a.statistics)||void 0===u?void 0:u[g.id])||void 0===u?void 0:u.evaluations)||0)+1})),r&&g.id&&o.state&&(r.state.signals=r.state.signals||{},r.state.signals[g.id]=o.state),[2,s];case 6:return[2]}})})},e.prototype.resolveFrequencyScope=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){return t=n.freq===optimize_common_1.SignalFrequency.OncePerVisit?optimize_common_1.Scope.Visit:optimize_common_1.Scope.Visitor,[2,this.resolveScope(t,i)]})})},e.prototype.determineIfSignalShouldEvaluate=function(e,t){return e.id?!e.freq||e.freq===optimize_common_1.SignalFrequency.Always||(e.type===optimize_common_1.SignalType.PageViewCount||!(null!==(e=null===(t=null==t?void 0:t.statistics)||void 0===t?void 0:t[e.id])&&void 0!==e&&e.evaluations)):(this.log({level:"info",region:"determineIfSignalShouldEvaluate",message:"Signal ID is not populated"}),!1)},e.prototype.combineScoring=function(t){var e=Object.keys(t).map(function(e){return t[e]}).filter(function(e){return e&&e.values}).map(function(e){return e.values});return combineScores_1.combineScores.apply(void 0,e)},e.prototype.processSignalEvaluations=function(e){var s={};return e.forEach(function(e){var t=e.signal,n=e.scope,i=e.result,r=e.intent.id;n&&i&&(i.strength||i.strength===optimize_common_1.IntentTagStrength.Antimatter)&&(n=(e=s[n.type]=s[n.type]||{matches:[],score:{}}).score,e=e.matches,(n=n[r]=n[r]||{str:0}).str=Number(n.str)+Number(i.strength),e.push({intentId:r,signalStrength:i.strength,signalType:t.type}))}),this.log({level:"verbose",message:"Signal evaluation matches",region:"processSignalEvaluations",summary:s}),s},e.prototype.reevaluateIntent=function(e){var s=e.intent,o=e.scopes,a=e.requestContext,u=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var i,t,n,r=this;return __generator(this,function(e){switch(e.label){case 0:return(i=[],t=s.id,(n=s.signals)&&0!==n.length)?[3,1]:(this.log({level:"warn",message:"Intent "+t+" does not define any signals.",region:"Reevaluate Intent"}),[3,3]);case 1:return[4,Promise.all(s.signals.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.reevaluateSignal({intent:s,scopes:o,signal:n,requestContext:a,behaviorQueue:u})];case 1:return null!=(t=e.sent())&&t.result&&i.push(t),[2]}})})}))];case 2:e.sent(),e.label=3;case 3:return[2,i]}})})},e.prototype.clearBehaviorQueue=function(){var e,t,n=this._behaviorQueue.length,i=Object.keys(this._behaviorKeys).length;(n||i)&&(e=this._behaviorQueue.splice(0,n),t=this._behaviorKeys,this._behaviorKeys={},this.log({level:"verbose",message:"Queue cleared",region:"clearBehaviorQueue",count:n+i,cleared:e,clearedKeys:t}))},e.prototype.clearEventQueue=function(){var e;this._events.length&&(e=this._events.splice(0,this._events.length),this.log({level:"verbose",message:"Clearing event queue",region:"clearEventQueue",count:e.length,cleared:e}))},e.prototype.applySignalEvaluationSummary=function(u){return __awaiter(this,void 0,void 0,function(){var t,a,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return t="applySignalEvaluationSummary",n=this.getScopeNames(),a={},[4,Promise.all(n.map(function(o){return __awaiter(i,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return i=u[o]||{matches:[],score:{}},t=i.score,n=i.matches,[4,this.readScoring(o)];case 1:return i=e.sent(),r=a,s=o,[4,this.applyScoringStrategy(o,i,t,n.length)];case 2:return r[s]=e.sent(),[2]}})})}))];case 1:return e.sent(),this.log(__assign({level:"verbose",message:"Scoring by scope",region:t},a)),n=this.combineScoring(a),this.log(__assign({level:"verbose",message:"Combined scope scoring",region:t},n)),[2,n]}})})},e.prototype.getServerState=function(){if(this._serverState)return this._serverState;if("undefined"!=typeof document){var e=document.getElementById("__UNIFORM_DATA__");if(null!=e&&e.textContent)return JSON.parse(e.textContent)}},e.prototype.resolveSignalStorage=function(e,t){var n="resolveSignalStorage",i=t.id?null===(i=null==e?void 0:e.state.signals)||void 0===i?void 0:i[t.id]:{};return!t.id||null!==(e=null==e?void 0:e.state.signals)&&void 0!==e&&e[t.id]?this.log(__assign({level:"verbose",message:'Signal "'+t.id+'" is using stored state',region:n},i)):this.log({level:"verbose",message:'Signal "'+t.id+'" is using default state',region:n}),i},e.prototype.loadPlugins=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return this._plugins?(t=this._plugins.findPlugins("initialize"),[4,Promise.all(t.map(function(e){return e.initialize({setIntentStrength:n.setIntentStrength.bind(n),log:n.log.bind(n),manifest:n._intentManifest})}))]):[2];case 1:return e.sent(),[2]}})})},e.prototype.loadSignalEvaluators=function(){var e,i=this;return((null===(e=this._plugins)||void 0===e?void 0:e.find("signalEvaluatorMapping"))||[]).reduce(function(t,e){var n=e();return Object.keys(n).forEach(function(e){t[e]&&i.log({level:"warn",region:"loadSignalEvaluators",message:"[Tracker]: Multiple plugins provided signal resolvers for "+e}),t[e]=n[e]}),t},{})},e.prototype.addIntents=function(e){var t=e.map(function(n){var e=n.signals;return __assign(__assign({},n),{signals:e.map(function(e){var t=e.id;return __assign(__assign({},e),{id:null!=t?t:n.id+":"+JSON.stringify(e)})})})});(e=this._intentMappings).push.apply(e,t)},e.prototype.readScoring=function(r){return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())&&this._decayStrategy?(n=__assign({},t),[4,this._decayStrategy(t)]):[3,3];case 2:void 0!==(i=e.sent())&&(t=i),i&&this.log({level:"verbose",message:"Score decay has been applied",region:"readScoring",pre:n,post:t}),e.label=3;case 3:return[2,t]}})})},e.prototype.getScopeStrategy=function(e){if(this._scopeStrategies)return this._scopeStrategies[e]},e.prototype.getAllScopeStrategies=function(){var t=this;return this._scopeStrategies?Object.keys(this._scopeStrategies).map(function(e){return t._scopeStrategies[e]}):[]},e.prototype.getScopeNames=function(e){return this._scopeStrategies?e&&this._scopeStrategies[e]?[e]:Object.keys(this._scopeStrategies):[]},e.prototype.resolveScope=function(s,o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r;return __generator(this,function(e){switch(e.label){case 0:return(t="Resolve Scope",n=s||optimize_common_1.Scope.Visitor,o&&s)?(r=o[s],[3,3]):[3,1];case 1:return[4,null===(a=this.getScopeStrategy(n))||void 0===a?void 0:a.get()];case 2:r=e.sent(),e.label=3;case 3:return(i=r)||this.log({level:"warn",message:'Scope "'+s+'" returned null or undefined',region:t}),(null==i?void 0:i.type)!==s&&void 0!==s&&this.log({level:"warn",message:'Scope "'+s+'" was requested, but "'+(null==i?void 0:i.type)+'" was resolved',region:t}),[2,i]}})})},e.prototype.initializeScopes=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getAllScopeStrategies(),[4,Promise.all(t.map(function(e){return e.initialize({log:n.log.bind(n),storage:n._storage.scopes})}))];case 1:return e.sent(),[2]}})})},e.prototype.applyScoringStrategy=function(e,t,n,i){i=this._scoringStrategy({previousValue:(null==t?void 0:t.values)||{},valueToAdd:n,signalCount:i});return this.writeScoring(e,i,t)},e.prototype.writeScoring=function(i,r,s){var o;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n="writeScoring",t=void 0,s&&(t=diffScores_1.diffScores(r.values,s.values),0===Object.keys(t).length))?(this.log({level:"verbose",region:n,message:"Scoring update skipped for scope "+i+"; values unchanged"}),[2,r]):(this.log(__assign({level:"verbose",message:i+" scoring has been updated",region:n},scoreIsEmpty_1.scoreIsEmpty(r.values)?{cleared:!0}:r.values)),n=null===(o=null===(o=this._scopeStrategies)||void 0===o?void 0:o[i])||void 0===o?void 0:o.getExpiration(),[4,this._storage.scopes.setScoring(r,i,n,s,t)]);case 1:return e.sent(),[2,r]}})})},e.prototype.broadcastScoring=function(i){var r;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n=i)?[3,2]:[4,this.getIntentStrength()];case 1:n=e.sent(),e.label=2;case 2:return(t=n,!scoreIsEmpty_1.scoreIsEmpty(t)&&this._lastBroadcastScoring&&scoresAreEqual_1.scoresAreEqual(this._lastBroadcastScoring,t))?(this.log({level:"verbose",region:"broadcastScoring",message:"Skipped broadcasting unchanged scoring",value:t}),[2]):(this._lastBroadcastScoring=t,null!==(r=this._plugins)&&void 0!==r&&r.scoringChange(function(e){return e(t||null)}),this._listeners.forEach(function(e){return e(t||null)}),[2])}})})},e.prototype.isKnownEnrichment=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.enrichments)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e}();exports.OptimizeTracker=OptimizeTracker;
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,a,l){return new(a=a||Promise)(function(n,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function r(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(i,r)}s((l=l.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,s,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,s&&(o=2&t[0]?s.return:t[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,t[1])).done)return o;switch(s=0,(t=o?[2&t[0],o.value]:t)[0]){case 0:case 1:o=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,s=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(o=0<(o=a.trys).length&&o[o.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!o||t[1]>o[0]&&t[1]<o[3])){a.label=t[1];break}if(6===t[0]&&a.label<o[1]){a.label=o[1],o=t;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(t);break}o[2]&&a.ops.pop(),a.trys.pop();continue}t=i.call(n,a)}catch(e){t=[6,e],s=0}finally{r=o=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}},__rest=this&&this.__rest||function(e,t){var n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},__spreadArray=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var i,r=0,s=t.length;r<s;r++)!i&&r in t||((i=i||Array.prototype.slice.call(t,0,r))[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OptimizeTracker=void 0;var optimize_common_1=require("@uniformdev/optimize-common"),decayByDayStrategy_1=require("./decay/decayByDayStrategy"),cumulativeScoringStrategy_1=require("./scoring/cumulativeScoringStrategy"),utils_1=require("./utils"),combineScores_1=require("./scoring/combineScores"),diffScores_1=require("./scoring/diffScores"),scoresAreEqual_1=require("./scoring/scoresAreEqual"),scoreIsEmpty_1=require("./scoring/scoreIsEmpty"),OptimizeTracker=function(){function e(e){var t;this._intentMappings=[],this._behaviorQueue=[],this._behaviorKeys={},this._events=[],this._listeners=[],this._testSettings=[],this._signalEvaluators={},this._initialized=!1,this._lastBroadcastScoring=void 0,this._intentManifest=e.intentManifest,e.intentManifest&&this.addIntents(e.intentManifest.site.intents),this._plugins=e.plugins,this._storage=e.storage,this._scopeStrategies=e.scopes,this._scoringStrategy=null!==(t=e.scoring)&&void 0!==t?t:(0,cumulativeScoringStrategy_1.cumulativeScoringStrategy)(),this._decayStrategy=null!==(t=e.decay)&&void 0!==t?t:(0,decayByDayStrategy_1.decayByDayStrategy)(),this._serverState=this.getServerState(),e.testing&&(t=Array.isArray(e.testing)?e.testing:[e.testing],(e=this._testSettings).push.apply(e,t))}return e.prototype.initialize=function(){var n,i;return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(e){switch(e.label){case 0:return this.log({level:"info",message:"Received intent manifest",region:"initialize",intents:this._intentManifest}),[4,this.initializeScopes()];case 1:return e.sent(),[4,this.loadPlugins()];case 2:return e.sent(),this._signalEvaluators=this.loadSignalEvaluators(),null!==(i=(n=this._storage.scopes).setScoringValueExternallyUpdatedCallback)&&void 0!==i&&i.call(n,function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.broadcastScoring()];case 1:return e.sent(),[2]}})})}),this._lastBroadcastScoring=void 0,this._initialized=!0,[2]}})})},e.prototype.isInitialized=function(){return this._initialized},e.prototype.getIntentStrength=function(n){return __awaiter(this,void 0,void 0,function(){var t,i,r=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(n),i={},[4,Promise.all(t.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),i[n]=t,[2]}})})}))];case 1:return e.sent(),[2,this.combineScoring(i)]}})})},e.prototype.getIntentStrengthSingle=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.getIntentStrength(i)];case 1:return[2,null==(t=e.sent())?void 0:t[n]]}})})},e.prototype.addIntentStrength=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),[4,this.applyScoringStrategy(n,t,i,1)];case 2:return e.sent(),[4,this.broadcastScoring()];case 3:return e.sent(),[2]}})})},e.prototype.setIntentStrength=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.applyScoringStrategy(t,void 0,n,1)];case 1:return e.sent(),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.removeIntent=function(a,l){return __awaiter(this,void 0,void 0,function(){var t,s,o,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(null==l?void 0:l.scope),s="string"==typeof a?[a]:a,o=!1,[4,Promise.all(t.map(function(r){return __awaiter(n,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())?(i=!(n={}),Object.keys(t.values).map(function(e){a&&-1===(null==s?void 0:s.indexOf(e))?n[e]=t.values[e]:o=i=!0}),i?[4,this.writeScoring(r,__assign(__assign({},t),{values:n}),t)]:[3,4]):[3,4];case 2:return e.sent(),null!=l&&l.quiet?[3,4]:[4,this.broadcastScoring()];case 3:e.sent(),e.label=4;case 4:return[2]}})})}))];case 1:return e.sent(),[2,o]}})})},e.prototype.addScoringChangeListener=function(e){this._listeners.push(e)},e.prototype.removeScoringChangeListener=function(e){e=this._listeners.indexOf(e);-1<e&&this._listeners.splice(e,1)},e.prototype.reevaluateSignals=function(c){return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u=this;return __generator(this,function(e){switch(e.label){case 0:return(t="reevaluateSignals",this.log({level:"verbose",message:"Signals reevaluating...",region:t}),this._intentMappings&&this._intentMappings.length)?(n={},[4,Promise.all(this.getAllScopeStrategies().map(function(e){return e.get().then(function(e){e&&(n[null==e?void 0:e.type]=e)})}))]):(this.log({level:"warn",message:"Intents list is empty",region:t}),[2,{signalMatches:{}}]);case 1:return e.sent(),i=Object.keys(this._behaviorKeys),r=0===i.length?this._behaviorQueue:__spreadArray(__spreadArray([],this._behaviorQueue,!0),i.map(function(e){return u._behaviorKeys[e]}),!0),[4,Promise.all(this._intentMappings.map(function(e){return u.reevaluateIntent({intent:e,scopes:n,requestContext:c,behaviorQueue:r})}))];case 2:return s=e.sent(),s=s.flatMap(function(e){return e}),o=s.reduce(function(e,t){if(!t.statsScope||!t.statistics||!t.signal)return e;var n=t.statsScope.type;return(e[n]=null!==(n=e[n])&&void 0!==n?n:{})[t.signal.id]=t.statistics,e},{}),[4,Promise.all(Object.keys(o).map(function(e){var t;return null===(t=u.getScopeStrategy(e))||void 0===t?void 0:t.save(__assign(__assign({},n[e]),{statistics:__assign(__assign({},n[e].statistics||{}),o[e])}))}))];case 3:return e.sent(),a=this.processSignalEvaluations(s),[4,this.applySignalEvaluationSummary(a)];case 4:return l=e.sent(),[4,this.broadcastScoring(l)];case 5:return e.sent(),this.clearBehaviorQueue(),this.clearEventQueue(),this.log(__assign({level:"info",message:"Reevaluated signals",region:t},l)),[2,{scoring:l,signalMatches:Object.keys(a).reduce(function(e,t){return e[t]=a[t].matches,e},{})}]}})})},e.prototype.addBehaviorActivity=function(e,t){this.log(__assign(__assign({level:"verbose",region:"addBehaviorActivity",message:"Behavior activity added to queue"},e),{sourceKey:t})),t?this._behaviorKeys[t]=e:this._behaviorQueue.push(e)},e.prototype.addEvent=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._events.push(t),n&&void 0!==n.quiet&&n.quiet?[3,2]:[4,this.reevaluateSignals()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.getEnrichmentValues=function(r,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(e){switch(e.label){case 0:return this.isKnownEnrichment(r)?[4,this.getIntentStrength(null==t?void 0:t.scope)]:[2,void 0];case 1:return i=e.sent()||{},[2,Object.keys(i||{}).reduce(function(e,t){var n=(0,utils_1.getEnrichmentValue)(r,t);return n&&i[t].str&&(e[n]=Number(i[t].str||0)),e},{})]}})})},e.prototype.addEnrichment=function(v,p){var _;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u,c,g,h;return __generator(this,function(e){switch(e.label){case 0:for(t=(null==p?void 0:p.scope)||optimize_common_1.Scope.Visitor,n=Array.isArray(v)?v:[v],i={},r={},s=0,o=n;s<o.length;s++)a=o[s],this.isKnownEnrichment(a.name)&&(l=(0,utils_1.calculateEnrichmentIntentName)(a.name,a.value),null!=p&&p.clearValues&&(r[a.name]=!0),u=Number((null===(_=i[l])||void 0===_?void 0:_.str)||0),i[l]={str:u+(a.str||optimize_common_1.IntentTagStrength.Normal)});c=0,g=Object.keys(r),e.label=1;case 1:return c<g.length?(h=g[c],[4,this.removeEnrichment(h,{scope:t,quiet:!0})]):[3,4];case 2:e.sent(),e.label=3;case 3:return c++,[3,1];case 4:return[4,this.readScoring(t)];case 5:return h=e.sent(),[4,this.applyScoringStrategy(t,h,i,n.length)];case 6:return e.sent(),null!=p&&p.quiet?[3,8]:[4,this.reevaluateSignals()];case 7:e.sent(),e.label=8;case 8:return[2]}})})},e.prototype.removeEnrichment=function(i,r){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return t=(null==r?void 0:r.scope)||optimize_common_1.Scope.Visitor,[4,this.getIntentStrength(t)];case 1:return n=e.sent()||{},n=Object.keys(n||{}).filter(function(e){if((0,utils_1.getEnrichmentValue)(i,e))return e},{}),[4,this.removeIntent(n,{scope:t,quiet:null==r?void 0:r.quiet})];case 2:return e.sent(),[2]}})})},e.prototype.trackPersonalization=function(t,n){var e;t&&null!==(e=this._plugins)&&void 0!==e&&e.track(function(e){return e(t,n)})},e.prototype.isInPersonalizationControlGroup=function(o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return(t=(r=o||{}).scope,n=r.sampleSize,i=new Date,r=this._testSettings.find(function(e){return e.strategy&&(!e.endDate||e.endDate>i)}))?(s=null!=t?t:optimize_common_1.Scope.Visitor,[4,null===(a=this.getScopeStrategy(s))||void 0===a?void 0:a.get()]):[2,!1];case 1:return s=e.sent(),[2,r.strategy.isInPersonalizationControlGroup(s,n)]}})})},e.prototype.getTestValue=function(t){var e=null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t});return null!=e&&e.winning_variation_id?Promise.resolve(e.winning_variation_id):null!==(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)&&void 0!==e&&e[t]?Promise.resolve(null===(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)||void 0===e?void 0:e[t]):this._storage.tests.getTestSelection(t)},e.prototype.setTestValue=function(t,e){var n=null===(n=null===(n=this._intentManifest)||void 0===n?void 0:n.site.tests)||void 0===n?void 0:n.find(function(e){return e.name===t});return null!=n&&n.winning_variation_id?Promise.resolve():this._storage.tests.setTestSelection(t,e)},e.prototype.isTestEnabled=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e.prototype.identify=function(r){var s;return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return(t=null===(s=this._storage)||void 0===s?void 0:s.scopes.identify)?[4,this._storage.scopes.getScoring(optimize_common_1.Scope.Visitor)]:(this.log({region:"identify",level:"warn",message:"Visitor was identified, but storage did not implement identification"}),[2]);case 1:return n=e.sent(),[4,t(r)];case 2:return(i=e.sent())?[4,this.writeScoring(optimize_common_1.Scope.Visitor,i,n)]:[3,5];case 3:return e.sent(),[4,this.broadcastScoring()];case 4:e.sent(),e.label=5;case 5:return[2]}})})},e.prototype.forgetMe=function(t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.all([this._storage.scopes.delete(t),this._storage.tests.delete()])];case 1:return e.sent(),this.log({level:"info",region:"forgetMe",message:"Visitor has been forgotten (allDevices: "+t+")"}),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.log=function(t){var e;null!==(e=this._plugins)&&void 0!==e&&e.log(function(e){return e(t)})},e.prototype.reevaluateSignal=function(e){var l,u=e.intent,c=e.scopes,g=e.signal,h=e.requestContext,v=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a;return __generator(this,function(e){switch(e.label){case 0:return t="reevaluateSignal",[4,this.resolveFrequencyScope(g,c)];case 1:return n=e.sent(),[4,this.determineIfSignalShouldEvaluate(g,n)];case 2:return e.sent()?(i=this._signalEvaluators[g.type])?(g.str||g.str===optimize_common_1.IntentTagStrength.Antimatter||(this.log({level:"warn",message:"Strength not defined on signal, setting strength to "+optimize_common_1.IntentTagStrength.Normal,region:t}),g.str=optimize_common_1.IntentTagStrength.Normal),[4,this.resolveScope(g.scope,c)]):(this.log({level:"warn",message:"Signal "+g.type+" not handled by any plugin. It will be ignored.",region:t}),[2,void 0]):(this.log({level:"info",message:"Signal "+g.id+" will not evaluate",region:t}),[2,void 0]);case 3:return r=e.sent(),a=this.resolveSignalStorage(r,g),s={intent:u,signal:g,scope:r,statsScope:n},a={signal:g,intent:u,behaviors:v,state:a,requestContext:h||(0,utils_1.getBrowserRequestContext)(),events:this._events,log:this.log.bind(this)},__rest(a,["requestContext","log"]),a=i(a),[4,Promise.resolve(a)];case 4:return o=e.sent(),this.log({level:"verbose",message:g.type+" Signal evaluation result: "+(null!=o&&o.strength?o.strength:"no match"),region:t,signal:g,intent:u,result:o}),void 0===(s.result=o)?[2,s]:g.id?[4,this.resolveFrequencyScope(g,c)]:[3,6];case 5:return(a=e.sent())&&(s.statistics=__assign(__assign({},null===(l=a.statistics)||void 0===l?void 0:l[g.id]),{evaluations:((null===(l=null===(l=a.statistics)||void 0===l?void 0:l[g.id])||void 0===l?void 0:l.evaluations)||0)+1})),r&&g.id&&o.state&&(r.state.signals=r.state.signals||{},r.state.signals[g.id]=o.state),[2,s];case 6:return[2]}})})},e.prototype.resolveFrequencyScope=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){return t=n.freq===optimize_common_1.SignalFrequency.OncePerVisit?optimize_common_1.Scope.Visit:optimize_common_1.Scope.Visitor,[2,this.resolveScope(t,i)]})})},e.prototype.determineIfSignalShouldEvaluate=function(e,t){return e.id?!e.freq||e.freq===optimize_common_1.SignalFrequency.Always||(e.type===optimize_common_1.SignalType.PageViewCount||!(null!==(e=null===(t=null==t?void 0:t.statistics)||void 0===t?void 0:t[e.id])&&void 0!==e&&e.evaluations)):(this.log({level:"info",region:"determineIfSignalShouldEvaluate",message:"Signal ID is not populated"}),!1)},e.prototype.combineScoring=function(t){var e=Object.keys(t).map(function(e){return t[e]}).filter(function(e){return e&&e.values}).map(function(e){return e.values});return combineScores_1.combineScores.apply(void 0,e)},e.prototype.processSignalEvaluations=function(e){var s={};return e.forEach(function(e){var t=e.signal,n=e.scope,i=e.result,r=e.intent.id;n&&i&&(i.strength||i.strength===optimize_common_1.IntentTagStrength.Antimatter)&&(n=(e=s[n.type]=s[n.type]||{matches:[],score:{}}).score,e=e.matches,(n=n[r]=n[r]||{str:0}).str=Number(n.str)+Number(i.strength),e.push({intentId:r,signalStrength:i.strength,signalType:t.type}))}),this.log({level:"verbose",message:"Signal evaluation matches",region:"processSignalEvaluations",summary:s}),s},e.prototype.reevaluateIntent=function(e){var s=e.intent,o=e.scopes,a=e.requestContext,l=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var i,t,n,r=this;return __generator(this,function(e){switch(e.label){case 0:return(i=[],t=s.id,(n=s.signals)&&0!==n.length)?[3,1]:(this.log({level:"warn",message:"Intent "+t+" does not define any signals.",region:"Reevaluate Intent"}),[3,3]);case 1:return[4,Promise.all(s.signals.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.reevaluateSignal({intent:s,scopes:o,signal:n,requestContext:a,behaviorQueue:l})];case 1:return null!=(t=e.sent())&&t.result&&i.push(t),[2]}})})}))];case 2:e.sent(),e.label=3;case 3:return[2,i]}})})},e.prototype.clearBehaviorQueue=function(){var e,t,n=this._behaviorQueue.length,i=Object.keys(this._behaviorKeys).length;(n||i)&&(e=this._behaviorQueue.splice(0,n),t=this._behaviorKeys,this._behaviorKeys={},this.log({level:"verbose",message:"Queue cleared",region:"clearBehaviorQueue",count:n+i,cleared:e,clearedKeys:t}))},e.prototype.clearEventQueue=function(){var e;this._events.length&&(e=this._events.splice(0,this._events.length),this.log({level:"verbose",message:"Clearing event queue",region:"clearEventQueue",count:e.length,cleared:e}))},e.prototype.applySignalEvaluationSummary=function(l){return __awaiter(this,void 0,void 0,function(){var t,a,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return t="applySignalEvaluationSummary",n=this.getScopeNames(),a={},[4,Promise.all(n.map(function(o){return __awaiter(i,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return i=l[o]||{matches:[],score:{}},t=i.score,n=i.matches,[4,this.readScoring(o)];case 1:return i=e.sent(),r=a,s=o,[4,this.applyScoringStrategy(o,i,t,n.length)];case 2:return r[s]=e.sent(),[2]}})})}))];case 1:return e.sent(),this.log(__assign({level:"verbose",message:"Scoring by scope",region:t},a)),n=this.combineScoring(a),this.log(__assign({level:"verbose",message:"Combined scope scoring",region:t},n)),[2,n]}})})},e.prototype.getServerState=function(){if(this._serverState)return this._serverState;if("undefined"!=typeof document){var e=document.getElementById("__UNIFORM_DATA__");if(null!=e&&e.textContent)return JSON.parse(e.textContent)}},e.prototype.resolveSignalStorage=function(e,t){var n="resolveSignalStorage",i=t.id?null===(i=null==e?void 0:e.state.signals)||void 0===i?void 0:i[t.id]:{};return!t.id||null!==(e=null==e?void 0:e.state.signals)&&void 0!==e&&e[t.id]?this.log(__assign({level:"verbose",message:'Signal "'+t.id+'" is using stored state',region:n},i)):this.log({level:"verbose",message:'Signal "'+t.id+'" is using default state',region:n}),i},e.prototype.loadPlugins=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return this._plugins?(t=this._plugins.findPlugins("initialize"),[4,Promise.all(t.map(function(e){return e.initialize({setIntentStrength:n.setIntentStrength.bind(n),log:n.log.bind(n),manifest:n._intentManifest})}))]):[2];case 1:return e.sent(),[2]}})})},e.prototype.loadSignalEvaluators=function(){var e,i=this;return((null===(e=this._plugins)||void 0===e?void 0:e.find("signalEvaluatorMapping"))||[]).reduce(function(t,e){var n=e();return Object.keys(n).forEach(function(e){t[e]&&i.log({level:"warn",region:"loadSignalEvaluators",message:"[Tracker]: Multiple plugins provided signal resolvers for "+e}),t[e]=n[e]}),t},{})},e.prototype.addIntents=function(e){var t=e.map(function(n){var e=n.signals;return __assign(__assign({},n),{signals:e.map(function(e){var t=e.id;return __assign(__assign({},e),{id:null!=t?t:n.id+":"+JSON.stringify(e)})})})});(e=this._intentMappings).push.apply(e,t)},e.prototype.readScoring=function(r){return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())&&this._decayStrategy?(n=__assign({},t),[4,this._decayStrategy(t)]):[3,3];case 2:void 0!==(i=e.sent())&&(t=i),i&&this.log({level:"verbose",message:"Score decay has been applied",region:"readScoring",pre:n,post:t}),e.label=3;case 3:return[2,t]}})})},e.prototype.getScopeStrategy=function(e){if(this._scopeStrategies)return this._scopeStrategies[e]},e.prototype.getAllScopeStrategies=function(){var t=this;return this._scopeStrategies?Object.keys(this._scopeStrategies).map(function(e){return t._scopeStrategies[e]}):[]},e.prototype.getScopeNames=function(e){return this._scopeStrategies?e&&this._scopeStrategies[e]?[e]:Object.keys(this._scopeStrategies):[]},e.prototype.resolveScope=function(s,o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r;return __generator(this,function(e){switch(e.label){case 0:return(t="Resolve Scope",n=s||optimize_common_1.Scope.Visitor,o&&s)?(r=o[s],[3,3]):[3,1];case 1:return[4,null===(a=this.getScopeStrategy(n))||void 0===a?void 0:a.get()];case 2:r=e.sent(),e.label=3;case 3:return(i=r)||this.log({level:"warn",message:'Scope "'+s+'" returned null or undefined',region:t}),(null==i?void 0:i.type)!==s&&void 0!==s&&this.log({level:"warn",message:'Scope "'+s+'" was requested, but "'+(null==i?void 0:i.type)+'" was resolved',region:t}),[2,i]}})})},e.prototype.initializeScopes=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getAllScopeStrategies(),[4,Promise.all(t.map(function(e){return e.initialize({log:n.log.bind(n),storage:n._storage.scopes})}))];case 1:return e.sent(),[2]}})})},e.prototype.applyScoringStrategy=function(e,t,n,i){i=this._scoringStrategy({previousValue:(null==t?void 0:t.values)||{},valueToAdd:n,signalCount:i});return this.writeScoring(e,i,t)},e.prototype.writeScoring=function(i,r,s){var o;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n="writeScoring",t=void 0,s&&(t=(0,diffScores_1.diffScores)(r.values,s.values),0===Object.keys(t).length))?(this.log({level:"verbose",region:n,message:"Scoring update skipped for scope "+i+"; values unchanged"}),[2,r]):(this.log(__assign({level:"verbose",message:i+" scoring has been updated",region:n},(0,scoreIsEmpty_1.scoreIsEmpty)(r.values)?{cleared:!0}:r.values)),n=null===(o=null===(o=this._scopeStrategies)||void 0===o?void 0:o[i])||void 0===o?void 0:o.getExpiration(),[4,this._storage.scopes.setScoring(r,i,n,s,t)]);case 1:return e.sent(),[2,r]}})})},e.prototype.broadcastScoring=function(i){var r;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n=i)?[3,2]:[4,this.getIntentStrength()];case 1:n=e.sent(),e.label=2;case 2:return(t=n,!(0,scoreIsEmpty_1.scoreIsEmpty)(t)&&this._lastBroadcastScoring&&(0,scoresAreEqual_1.scoresAreEqual)(this._lastBroadcastScoring,t))?(this.log({level:"verbose",region:"broadcastScoring",message:"Skipped broadcasting unchanged scoring",value:t}),[2]):(this._lastBroadcastScoring=t,null!==(r=this._plugins)&&void 0!==r&&r.scoringChange(function(e){return e(t||null)}),this._listeners.forEach(function(e){return e(t||null)}),[2])}})})},e.prototype.isKnownEnrichment=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.enrichments)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e}();exports.OptimizeTracker=OptimizeTracker;

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBrowserRequestContext=exports.getEnrichmentValue=exports.parseEnrichment=exports.calculateEnrichmentIntentName=exports.enrichmentDivider=exports.isLogLevelUnderThreshold=exports.logLevelMap=void 0,exports.logLevelMap={error:3,warn:2,info:1,verbose:0};var isLogLevelUnderThreshold=function(e,r){return!(!e||"none"===e)&&!(void 0!==exports.logLevelMap[e]&&void 0!==exports.logLevelMap[r]&&exports.logLevelMap[r]<exports.logLevelMap[e])};exports.isLogLevelUnderThreshold=isLogLevelUnderThreshold,exports.enrichmentDivider=">";var calculateEnrichmentIntentName=function(e,r){if(e.includes(exports.enrichmentDivider)||r.includes(exports.enrichmentDivider))throw'"'+exports.enrichmentDivider+'" is a reserved enrichment character';return""+e+exports.enrichmentDivider+r};exports.calculateEnrichmentIntentName=calculateEnrichmentIntentName;var parseEnrichment=function(e){e=e.split(exports.enrichmentDivider);if(2===e.length)return{type:e[0],value:e[1]}};exports.parseEnrichment=parseEnrichment;var getEnrichmentValue=function(e,r){r=exports.parseEnrichment(r);if(r)return r.type===e?r.value:void 0};exports.getEnrichmentValue=getEnrichmentValue;var getBrowserRequestContext=function(){if("undefined"!=typeof window&&"undefined"!=typeof document)return{cookies:document.cookie,url:window.location.href,userAgent:navigator.userAgent}};exports.getBrowserRequestContext=getBrowserRequestContext;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBrowserRequestContext=exports.getEnrichmentValue=exports.parseEnrichment=exports.calculateEnrichmentIntentName=exports.enrichmentDivider=exports.isLogLevelUnderThreshold=exports.logLevelMap=void 0,exports.logLevelMap={error:3,warn:2,info:1,verbose:0};var isLogLevelUnderThreshold=function(e,r){return!(!e||"none"===e)&&!(void 0!==exports.logLevelMap[e]&&void 0!==exports.logLevelMap[r]&&exports.logLevelMap[r]<exports.logLevelMap[e])};exports.isLogLevelUnderThreshold=isLogLevelUnderThreshold,exports.enrichmentDivider=">";var calculateEnrichmentIntentName=function(e,r){if(e.includes(exports.enrichmentDivider)||r.includes(exports.enrichmentDivider))throw'"'+exports.enrichmentDivider+'" is a reserved enrichment character';return""+e+exports.enrichmentDivider+r};exports.calculateEnrichmentIntentName=calculateEnrichmentIntentName;var parseEnrichment=function(e){e=e.split(exports.enrichmentDivider);if(2===e.length)return{type:e[0],value:e[1]}};exports.parseEnrichment=parseEnrichment;var getEnrichmentValue=function(e,r){r=(0,exports.parseEnrichment)(r);if(r)return r.type===e?r.value:void 0};exports.getEnrichmentValue=getEnrichmentValue;var getBrowserRequestContext=function(){if("undefined"!=typeof window&&"undefined"!=typeof document)return{cookies:document.cookie,url:window.location.href,userAgent:navigator.userAgent}};exports.getBrowserRequestContext=getBrowserRequestContext;

@@ -1,1 +0,1 @@

var __awaiter=this&&this.__awaiter||function(e,s,a,c){return new(a=a||Promise)(function(n,t){function o(e){try{i(c.next(e))}catch(e){t(e)}}function r(e){try{i(c.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(o,r)}i((c=c.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(n,o){var r,i,s,a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,i&&(s=2&t[0]?i.return:t[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,t[1])).done)return s;switch(i=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,i=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(s=0<(s=a.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3])){a.label=t[1];break}if(6===t[0]&&a.label<s[1]){a.label=s[1],s=t;break}if(s&&a.label<s[2]){a.label=s[2],a.ops.push(t);break}s[2]&&a.ops.pop(),a.trys.pop();continue}t=o.call(n,a)}catch(e){t=[6,e],i=0}finally{r=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};import{Scope}from"@uniformdev/optimize-common";import{ExtensionEvents,isExtensionSetScoreMessage}from"@uniformdev/optimize-tracker-common";var isBrowser="undefined"!=typeof top,addBrowserExtension=function(e){var o;return(e||{}).disableEventListeners||isBrowser&&window.addEventListener("message",function(n){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return n.data?isExtensionSetScoreMessage(n.data)&&(t=n.data.score)?(console.warn("[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.",t),[4,null==o?void 0:o.setIntentStrength(Scope.Visitor,{})]):[3,3]:[2];case 1:return e.sent(),[4,null==o?void 0:o.setIntentStrength(Scope.Visit,t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})}),{name:"browser-extension",initialize:function(e){o=e,isBrowser&&top.postMessage({type:ExtensionEvents.Hello,manifest:e.manifest},window.location.origin)},onLogMessage:function(e){isBrowser&&top.postMessage({type:ExtensionEvents.Log,message:e},window.location.origin)},onScoringChange:function(e){e&&isBrowser&&top.postMessage({type:ExtensionEvents.Score,score:e},window.location.origin)}}};export{addBrowserExtension};
var __awaiter=this&&this.__awaiter||function(e,s,a,c){return new(a=a||Promise)(function(n,t){function o(e){try{i(c.next(e))}catch(e){t(e)}}function r(e){try{i(c.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(o,r)}i((c=c.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(n,o){var r,i,s,a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,i&&(s=2&t[0]?i.return:t[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,t[1])).done)return s;switch(i=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,i=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(s=0<(s=a.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3])){a.label=t[1];break}if(6===t[0]&&a.label<s[1]){a.label=s[1],s=t;break}if(s&&a.label<s[2]){a.label=s[2],a.ops.push(t);break}s[2]&&a.ops.pop(),a.trys.pop();continue}t=o.call(n,a)}catch(e){t=[6,e],i=0}finally{r=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};import{Scope}from"@uniformdev/optimize-common";import{ExtensionEvents,isExtensionSetScoreMessage}from"@uniformdev/optimize-tracker-common";var isBrowser="undefined"!=typeof top,addBrowserExtension=function(e){var o;return(e||{}).disableEventListeners||isBrowser&&window.addEventListener("message",function(n){return __awaiter(void 0,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return n.data?isExtensionSetScoreMessage(n.data)&&(t=n.data.score)?(console.warn("[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.",t),[4,null==o?void 0:o.setIntentStrength(Scope.Visitor,{})]):[3,3]:[2];case 1:return e.sent(),[4,null==o?void 0:o.setIntentStrength(Scope.Visit,t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})}),{name:"browser-extension",initialize:function(e){o=e,isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:ExtensionEvents.Hello,manifest:e.manifest},window.location.origin)},onLogMessage:function(e){isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:ExtensionEvents.Log,message:e},window.location.origin)},onScoringChange:function(e){e&&isBrowser&&null!==top&&void 0!==top&&top.postMessage({type:ExtensionEvents.Score,score:e},window.location.origin)}}};export{addBrowserExtension};

@@ -1,1 +0,1 @@

var __awaiter=this&&this.__awaiter||function(t,a,u,c){return new(u=u||Promise)(function(e,n){function r(t){try{o(c.next(t))}catch(t){n(t)}}function i(t){try{o(c.throw(t))}catch(t){n(t)}}function o(t){var n;t.done?e(t.value):((n=t.value)instanceof u?n:new u(function(t){t(n)})).then(r,i)}o((c=c.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(e,r){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:n(0),throw:n(1),return:n(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function n(n){return function(t){return function(n){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&n[0]?o.return:n[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,n[1])).done)return a;switch(o=0,(n=a?[2&n[0],a.value]:n)[0]){case 0:case 1:a=n;break;case 4:return u.label++,{value:n[1],done:!1};case 5:u.label++,o=n[1],n=[0];continue;case 7:n=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===n[0]||2===n[0])){u=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){u.label=n[1];break}if(6===n[0]&&u.label<a[1]){u.label=a[1],a=n;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(n);break}a[2]&&u.ops.pop(),u.trys.pop();continue}n=r.call(e,u)}catch(t){n=[6,t],o=0}finally{i=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}([n,t])}}},__spreadArray=this&&this.__spreadArray||function(t,n){for(var e=0,r=n.length,i=t.length;e<r;e++,i++)t[i]=n[e];return t};import{returnFirstNonFalsy,waitAll,waitFirstFireRest}from"./utils";var compositeScopeStorage=function(t){var a,r=t.storage;return r.forEach(function(t,n){var e=function(i){var o=this;return function(n,e){for(var r=[],t=2;t<arguments.length;t++)r[t-2]=arguments[t];return __awaiter(o,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,Promise.all(i.map(function(t){return t.setScoring(e,n)}))];case 1:return t.sent(),[4,null==a?void 0:a.apply(void 0,__spreadArray([n,e],r))];case 2:return t.sent(),[2]}})})}}(r.slice(0,n));null!==(n=t.setScoringValueExternallyUpdatedCallback)&&void 0!==n&&n.call(t,e)}),{id:"Composite ("+r.map(function(t){return null!==(t=null==t?void 0:t.id)&&void 0!==t?t:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitAll(r,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})},getScope:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,returnFirstNonFalsy(r,function(t){return t.getScope.apply(t,n)})];case 1:return[2,t.sent()]}})})},setScope:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitFirstFireRest(r,function(t){return t.setScope.apply(t,n)})];case 1:return t.sent(),[2]}})})},getScoring:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,returnFirstNonFalsy(r,function(t){return t.getScoring.apply(t,n)})];case 1:return[2,t.sent()]}})})},setScoring:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitFirstFireRest(r,function(t){return t.setScoring.apply(t,n)})];case 1:return t.sent(),[2]}})})},identify:function(e){return __awaiter(void 0,void 0,void 0,function(){var n;return __generator(this,function(t){switch(t.label){case 0:return 0===(n=r.filter(function(t){return t.identify})).length&&console.warn("Visitor was identified, but no composite storage implements identification"),[4,Promise.all(n.map(function(t){return t.identify(e)}))];case 1:return n=t.sent(),[2,null===(n=n.filter(function(t){return t}))||void 0===n?void 0:n[0]]}})})},setScoringValueExternallyUpdatedCallback:function(t){return a=t}}};export{compositeScopeStorage};
var __awaiter=this&&this.__awaiter||function(t,a,u,c){return new(u=u||Promise)(function(e,n){function r(t){try{o(c.next(t))}catch(t){n(t)}}function i(t){try{o(c.throw(t))}catch(t){n(t)}}function o(t){var n;t.done?e(t.value):((n=t.value)instanceof u?n:new u(function(t){t(n)})).then(r,i)}o((c=c.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(e,r){var i,o,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:n(0),throw:n(1),return:n(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function n(n){return function(t){return function(n){if(i)throw new TypeError("Generator is already executing.");for(;u;)try{if(i=1,o&&(a=2&n[0]?o.return:n[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,n[1])).done)return a;switch(o=0,(n=a?[2&n[0],a.value]:n)[0]){case 0:case 1:a=n;break;case 4:return u.label++,{value:n[1],done:!1};case 5:u.label++,o=n[1],n=[0];continue;case 7:n=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===n[0]||2===n[0])){u=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){u.label=n[1];break}if(6===n[0]&&u.label<a[1]){u.label=a[1],a=n;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(n);break}a[2]&&u.ops.pop(),u.trys.pop();continue}n=r.call(e,u)}catch(t){n=[6,t],o=0}finally{i=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}([n,t])}}},__spreadArray=this&&this.__spreadArray||function(t,n,e){if(e||2===arguments.length)for(var r,i=0,o=n.length;i<o;i++)!r&&i in n||((r=r||Array.prototype.slice.call(n,0,i))[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))};import{returnFirstNonFalsy,waitAll,waitFirstFireRest}from"./utils";var compositeScopeStorage=function(t){var a,r=t.storage;return r.forEach(function(t,n){var e=function(i){var o=this;return function(n,e){for(var r=[],t=2;t<arguments.length;t++)r[t-2]=arguments[t];return __awaiter(o,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,Promise.all(i.map(function(t){return t.setScoring(e,n)}))];case 1:return t.sent(),[4,null==a?void 0:a.apply(void 0,__spreadArray([n,e],r,!1))];case 2:return t.sent(),[2]}})})}}(r.slice(0,n));null!==(n=t.setScoringValueExternallyUpdatedCallback)&&void 0!==n&&n.call(t,e)}),{id:"Composite ("+r.map(function(t){return null!==(t=null==t?void 0:t.id)&&void 0!==t?t:"unknown"}).join(", ")+")",delete:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitAll(r,function(t){return t.delete()})];case 1:return t.sent(),[2]}})})},getScope:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,returnFirstNonFalsy(r,function(t){return t.getScope.apply(t,n)})];case 1:return[2,t.sent()]}})})},setScope:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitFirstFireRest(r,function(t){return t.setScope.apply(t,n)})];case 1:return t.sent(),[2]}})})},getScoring:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,returnFirstNonFalsy(r,function(t){return t.getScoring.apply(t,n)})];case 1:return[2,t.sent()]}})})},setScoring:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,waitFirstFireRest(r,function(t){return t.setScoring.apply(t,n)})];case 1:return t.sent(),[2]}})})},identify:function(e){return __awaiter(void 0,void 0,void 0,function(){var n;return __generator(this,function(t){switch(t.label){case 0:return 0===(n=r.filter(function(t){return t.identify})).length&&console.warn("Visitor was identified, but no composite storage implements identification"),[4,Promise.all(n.map(function(t){return t.identify(e)}))];case 1:return n=t.sent(),[2,null===(n=n.filter(function(t){return t}))||void 0===n?void 0:n[0]]}})})},setScoringValueExternallyUpdatedCallback:function(t){return a=t}}};export{compositeScopeStorage};

@@ -1,1 +0,1 @@

var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,a,l){return new(a=a||Promise)(function(n,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function r(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(i,r)}s((l=l.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,s,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,s&&(o=2&t[0]?s.return:t[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,t[1])).done)return o;switch(s=0,(t=o?[2&t[0],o.value]:t)[0]){case 0:case 1:o=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,s=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(o=0<(o=a.trys).length&&o[o.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!o||t[1]>o[0]&&t[1]<o[3])){a.label=t[1];break}if(6===t[0]&&a.label<o[1]){a.label=o[1],o=t;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(t);break}o[2]&&a.ops.pop(),a.trys.pop();continue}t=i.call(n,a)}catch(e){t=[6,e],s=0}finally{r=o=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}},__rest=this&&this.__rest||function(e,t){var n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},__spreadArray=this&&this.__spreadArray||function(e,t){for(var n=0,i=t.length,r=e.length;n<i;n++,r++)e[r]=t[n];return e};import{IntentTagStrength,Scope,SignalFrequency,SignalType}from"@uniformdev/optimize-common";import{decayByDayStrategy}from"./decay/decayByDayStrategy";import{cumulativeScoringStrategy}from"./scoring/cumulativeScoringStrategy";import{calculateEnrichmentIntentName,getEnrichmentValue,getBrowserRequestContext}from"./utils";import{combineScores}from"./scoring/combineScores";import{diffScores}from"./scoring/diffScores";import{scoresAreEqual}from"./scoring/scoresAreEqual";import{scoreIsEmpty}from"./scoring/scoreIsEmpty";var OptimizeTracker=function(){function e(e){var t;this._intentMappings=[],this._behaviorQueue=[],this._behaviorKeys={},this._events=[],this._listeners=[],this._testSettings=[],this._signalEvaluators={},this._initialized=!1,this._lastBroadcastScoring=void 0,this._intentManifest=e.intentManifest,e.intentManifest&&this.addIntents(e.intentManifest.site.intents),this._plugins=e.plugins,this._storage=e.storage,this._scopeStrategies=e.scopes,this._scoringStrategy=null!==(t=e.scoring)&&void 0!==t?t:cumulativeScoringStrategy(),this._decayStrategy=null!==(t=e.decay)&&void 0!==t?t:decayByDayStrategy(),this._serverState=this.getServerState(),e.testing&&(t=Array.isArray(e.testing)?e.testing:[e.testing],(e=this._testSettings).push.apply(e,t))}return e.prototype.initialize=function(){var n,i;return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(e){switch(e.label){case 0:return this.log({level:"info",message:"Received intent manifest",region:"initialize",intents:this._intentManifest}),[4,this.initializeScopes()];case 1:return e.sent(),[4,this.loadPlugins()];case 2:return e.sent(),this._signalEvaluators=this.loadSignalEvaluators(),null!==(i=(n=this._storage.scopes).setScoringValueExternallyUpdatedCallback)&&void 0!==i&&i.call(n,function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.broadcastScoring()];case 1:return e.sent(),[2]}})})}),this._lastBroadcastScoring=void 0,this._initialized=!0,[2]}})})},e.prototype.isInitialized=function(){return this._initialized},e.prototype.getIntentStrength=function(n){return __awaiter(this,void 0,void 0,function(){var t,i,r=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(n),i={},[4,Promise.all(t.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),i[n]=t,[2]}})})}))];case 1:return e.sent(),[2,this.combineScoring(i)]}})})},e.prototype.getIntentStrengthSingle=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.getIntentStrength(i)];case 1:return[2,null==(t=e.sent())?void 0:t[n]]}})})},e.prototype.addIntentStrength=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),[4,this.applyScoringStrategy(n,t,i,1)];case 2:return e.sent(),[4,this.broadcastScoring()];case 3:return e.sent(),[2]}})})},e.prototype.setIntentStrength=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.applyScoringStrategy(t,void 0,n,1)];case 1:return e.sent(),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.removeIntent=function(a,l){return __awaiter(this,void 0,void 0,function(){var t,s,o,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(null==l?void 0:l.scope),s="string"==typeof a?[a]:a,o=!1,[4,Promise.all(t.map(function(r){return __awaiter(n,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())?(i=!(n={}),Object.keys(t.values).map(function(e){a&&-1===(null==s?void 0:s.indexOf(e))?n[e]=t.values[e]:o=i=!0}),i?[4,this.writeScoring(r,__assign(__assign({},t),{values:n}),t)]:[3,4]):[3,4];case 2:return e.sent(),null!=l&&l.quiet?[3,4]:[4,this.broadcastScoring()];case 3:e.sent(),e.label=4;case 4:return[2]}})})}))];case 1:return e.sent(),[2,o]}})})},e.prototype.addScoringChangeListener=function(e){this._listeners.push(e)},e.prototype.removeScoringChangeListener=function(e){e=this._listeners.indexOf(e);-1<e&&this._listeners.splice(e,1)},e.prototype.reevaluateSignals=function(c){return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u=this;return __generator(this,function(e){switch(e.label){case 0:return(t="reevaluateSignals",this.log({level:"verbose",message:"Signals reevaluating...",region:t}),this._intentMappings&&this._intentMappings.length)?(n={},[4,Promise.all(this.getAllScopeStrategies().map(function(e){return e.get().then(function(e){e&&(n[null==e?void 0:e.type]=e)})}))]):(this.log({level:"warn",message:"Intents list is empty",region:t}),[2,{signalMatches:{}}]);case 1:return e.sent(),i=Object.keys(this._behaviorKeys),r=0===i.length?this._behaviorQueue:__spreadArray(__spreadArray([],this._behaviorQueue),i.map(function(e){return u._behaviorKeys[e]})),[4,Promise.all(this._intentMappings.map(function(e){return u.reevaluateIntent({intent:e,scopes:n,requestContext:c,behaviorQueue:r})}))];case 2:return s=e.sent(),s=s.flatMap(function(e){return e}),o=s.reduce(function(e,t){if(!t.statsScope||!t.statistics||!t.signal)return e;var n=t.statsScope.type;return(e[n]=null!==(n=e[n])&&void 0!==n?n:{})[t.signal.id]=t.statistics,e},{}),[4,Promise.all(Object.keys(o).map(function(e){var t;return null===(t=u.getScopeStrategy(e))||void 0===t?void 0:t.save(__assign(__assign({},n[e]),{statistics:__assign(__assign({},n[e].statistics||{}),o[e])}))}))];case 3:return e.sent(),a=this.processSignalEvaluations(s),[4,this.applySignalEvaluationSummary(a)];case 4:return l=e.sent(),[4,this.broadcastScoring(l)];case 5:return e.sent(),this.clearBehaviorQueue(),this.clearEventQueue(),this.log(__assign({level:"info",message:"Reevaluated signals",region:t},l)),[2,{scoring:l,signalMatches:Object.keys(a).reduce(function(e,t){return e[t]=a[t].matches,e},{})}]}})})},e.prototype.addBehaviorActivity=function(e,t){this.log(__assign(__assign({level:"verbose",region:"addBehaviorActivity",message:"Behavior activity added to queue"},e),{sourceKey:t})),t?this._behaviorKeys[t]=e:this._behaviorQueue.push(e)},e.prototype.addEvent=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._events.push(t),n&&void 0!==n.quiet&&n.quiet?[3,2]:[4,this.reevaluateSignals()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.getEnrichmentValues=function(r,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(e){switch(e.label){case 0:return this.isKnownEnrichment(r)?[4,this.getIntentStrength(null==t?void 0:t.scope)]:[2,void 0];case 1:return i=e.sent()||{},[2,Object.keys(i||{}).reduce(function(e,t){var n=getEnrichmentValue(r,t);return n&&i[t].str&&(e[n]=Number(i[t].str||0)),e},{})]}})})},e.prototype.addEnrichment=function(v,p){var d;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u,c,g,h;return __generator(this,function(e){switch(e.label){case 0:for(t=(null==p?void 0:p.scope)||Scope.Visitor,n=Array.isArray(v)?v:[v],i={},r={},s=0,o=n;s<o.length;s++)a=o[s],this.isKnownEnrichment(a.name)&&(l=calculateEnrichmentIntentName(a.name,a.value),null!=p&&p.clearValues&&(r[a.name]=!0),u=Number((null===(d=i[l])||void 0===d?void 0:d.str)||0),i[l]={str:u+(a.str||IntentTagStrength.Normal)});c=0,g=Object.keys(r),e.label=1;case 1:return c<g.length?(h=g[c],[4,this.removeEnrichment(h,{scope:t,quiet:!0})]):[3,4];case 2:e.sent(),e.label=3;case 3:return c++,[3,1];case 4:return[4,this.readScoring(t)];case 5:return h=e.sent(),[4,this.applyScoringStrategy(t,h,i,n.length)];case 6:return e.sent(),null!=p&&p.quiet?[3,8]:[4,this.reevaluateSignals()];case 7:e.sent(),e.label=8;case 8:return[2]}})})},e.prototype.removeEnrichment=function(i,r){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return t=(null==r?void 0:r.scope)||Scope.Visitor,[4,this.getIntentStrength(t)];case 1:return n=e.sent()||{},n=Object.keys(n||{}).filter(function(e){if(getEnrichmentValue(i,e))return e},{}),[4,this.removeIntent(n,{scope:t,quiet:null==r?void 0:r.quiet})];case 2:return e.sent(),[2]}})})},e.prototype.trackPersonalization=function(t,n){var e;t&&null!==(e=this._plugins)&&void 0!==e&&e.track(function(e){return e(t,n)})},e.prototype.isInPersonalizationControlGroup=function(o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return(t=(r=o||{}).scope,n=r.sampleSize,i=new Date,r=this._testSettings.find(function(e){return e.strategy&&(!e.endDate||e.endDate>i)}))?(s=null!=t?t:Scope.Visitor,[4,null===(a=this.getScopeStrategy(s))||void 0===a?void 0:a.get()]):[2,!1];case 1:return s=e.sent(),[2,r.strategy.isInPersonalizationControlGroup(s,n)]}})})},e.prototype.getTestValue=function(t){var e=null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t});return null!=e&&e.winning_variation_id?Promise.resolve(e.winning_variation_id):null!==(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)&&void 0!==e&&e[t]?Promise.resolve(null===(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)||void 0===e?void 0:e[t]):this._storage.tests.getTestSelection(t)},e.prototype.setTestValue=function(t,e){var n=null===(n=null===(n=this._intentManifest)||void 0===n?void 0:n.site.tests)||void 0===n?void 0:n.find(function(e){return e.name===t});return null!=n&&n.winning_variation_id?Promise.resolve():this._storage.tests.setTestSelection(t,e)},e.prototype.isTestEnabled=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e.prototype.identify=function(r){var s;return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return(t=null===(s=this._storage)||void 0===s?void 0:s.scopes.identify)?[4,this._storage.scopes.getScoring(Scope.Visitor)]:(this.log({region:"identify",level:"warn",message:"Visitor was identified, but storage did not implement identification"}),[2]);case 1:return n=e.sent(),[4,t(r)];case 2:return(i=e.sent())?[4,this.writeScoring(Scope.Visitor,i,n)]:[3,5];case 3:return e.sent(),[4,this.broadcastScoring()];case 4:e.sent(),e.label=5;case 5:return[2]}})})},e.prototype.forgetMe=function(t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.all([this._storage.scopes.delete(t),this._storage.tests.delete()])];case 1:return e.sent(),this.log({level:"info",region:"forgetMe",message:"Visitor has been forgotten (allDevices: "+t+")"}),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.log=function(t){var e;null!==(e=this._plugins)&&void 0!==e&&e.log(function(e){return e(t)})},e.prototype.reevaluateSignal=function(e){var l,u=e.intent,c=e.scopes,g=e.signal,h=e.requestContext,v=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a;return __generator(this,function(e){switch(e.label){case 0:return t="reevaluateSignal",[4,this.resolveFrequencyScope(g,c)];case 1:return n=e.sent(),[4,this.determineIfSignalShouldEvaluate(g,n)];case 2:return e.sent()?(i=this._signalEvaluators[g.type])?(g.str||g.str===IntentTagStrength.Antimatter||(this.log({level:"warn",message:"Strength not defined on signal, setting strength to "+IntentTagStrength.Normal,region:t}),g.str=IntentTagStrength.Normal),[4,this.resolveScope(g.scope,c)]):(this.log({level:"warn",message:"Signal "+g.type+" not handled by any plugin. It will be ignored.",region:t}),[2,void 0]):(this.log({level:"info",message:"Signal "+g.id+" will not evaluate",region:t}),[2,void 0]);case 3:return r=e.sent(),a=this.resolveSignalStorage(r,g),s={intent:u,signal:g,scope:r,statsScope:n},a={signal:g,intent:u,behaviors:v,state:a,requestContext:h||getBrowserRequestContext(),events:this._events,log:this.log.bind(this)},__rest(a,["requestContext","log"]),a=i(a),[4,Promise.resolve(a)];case 4:return o=e.sent(),this.log({level:"verbose",message:g.type+" Signal evaluation result: "+(null!=o&&o.strength?o.strength:"no match"),region:t,signal:g,intent:u,result:o}),void 0===(s.result=o)?[2,s]:g.id?[4,this.resolveFrequencyScope(g,c)]:[3,6];case 5:return(a=e.sent())&&(s.statistics=__assign(__assign({},null===(l=a.statistics)||void 0===l?void 0:l[g.id]),{evaluations:((null===(l=null===(l=a.statistics)||void 0===l?void 0:l[g.id])||void 0===l?void 0:l.evaluations)||0)+1})),r&&g.id&&o.state&&(r.state.signals=r.state.signals||{},r.state.signals[g.id]=o.state),[2,s];case 6:return[2]}})})},e.prototype.resolveFrequencyScope=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){return t=n.freq===SignalFrequency.OncePerVisit?Scope.Visit:Scope.Visitor,[2,this.resolveScope(t,i)]})})},e.prototype.determineIfSignalShouldEvaluate=function(e,t){return e.id?!e.freq||e.freq===SignalFrequency.Always||(e.type===SignalType.PageViewCount||!(null!==(e=null===(t=null==t?void 0:t.statistics)||void 0===t?void 0:t[e.id])&&void 0!==e&&e.evaluations)):(this.log({level:"info",region:"determineIfSignalShouldEvaluate",message:"Signal ID is not populated"}),!1)},e.prototype.combineScoring=function(t){var e=Object.keys(t).map(function(e){return t[e]}).filter(function(e){return e&&e.values}).map(function(e){return e.values});return combineScores.apply(void 0,e)},e.prototype.processSignalEvaluations=function(e){var s={};return e.forEach(function(e){var t=e.signal,n=e.scope,i=e.result,r=e.intent.id;n&&i&&(i.strength||i.strength===IntentTagStrength.Antimatter)&&(n=(e=s[n.type]=s[n.type]||{matches:[],score:{}}).score,e=e.matches,(n=n[r]=n[r]||{str:0}).str=Number(n.str)+Number(i.strength),e.push({intentId:r,signalStrength:i.strength,signalType:t.type}))}),this.log({level:"verbose",message:"Signal evaluation matches",region:"processSignalEvaluations",summary:s}),s},e.prototype.reevaluateIntent=function(e){var s=e.intent,o=e.scopes,a=e.requestContext,l=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var i,t,n,r=this;return __generator(this,function(e){switch(e.label){case 0:return(i=[],t=s.id,(n=s.signals)&&0!==n.length)?[3,1]:(this.log({level:"warn",message:"Intent "+t+" does not define any signals.",region:"Reevaluate Intent"}),[3,3]);case 1:return[4,Promise.all(s.signals.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.reevaluateSignal({intent:s,scopes:o,signal:n,requestContext:a,behaviorQueue:l})];case 1:return null!=(t=e.sent())&&t.result&&i.push(t),[2]}})})}))];case 2:e.sent(),e.label=3;case 3:return[2,i]}})})},e.prototype.clearBehaviorQueue=function(){var e,t,n=this._behaviorQueue.length,i=Object.keys(this._behaviorKeys).length;(n||i)&&(e=this._behaviorQueue.splice(0,n),t=this._behaviorKeys,this._behaviorKeys={},this.log({level:"verbose",message:"Queue cleared",region:"clearBehaviorQueue",count:n+i,cleared:e,clearedKeys:t}))},e.prototype.clearEventQueue=function(){var e;this._events.length&&(e=this._events.splice(0,this._events.length),this.log({level:"verbose",message:"Clearing event queue",region:"clearEventQueue",count:e.length,cleared:e}))},e.prototype.applySignalEvaluationSummary=function(l){return __awaiter(this,void 0,void 0,function(){var t,a,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return t="applySignalEvaluationSummary",n=this.getScopeNames(),a={},[4,Promise.all(n.map(function(o){return __awaiter(i,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return i=l[o]||{matches:[],score:{}},t=i.score,n=i.matches,[4,this.readScoring(o)];case 1:return i=e.sent(),r=a,s=o,[4,this.applyScoringStrategy(o,i,t,n.length)];case 2:return r[s]=e.sent(),[2]}})})}))];case 1:return e.sent(),this.log(__assign({level:"verbose",message:"Scoring by scope",region:t},a)),n=this.combineScoring(a),this.log(__assign({level:"verbose",message:"Combined scope scoring",region:t},n)),[2,n]}})})},e.prototype.getServerState=function(){if(this._serverState)return this._serverState;if("undefined"!=typeof document){var e=document.getElementById("__UNIFORM_DATA__");if(null!=e&&e.textContent)return JSON.parse(e.textContent)}},e.prototype.resolveSignalStorage=function(e,t){var n="resolveSignalStorage",i=t.id?null===(i=null==e?void 0:e.state.signals)||void 0===i?void 0:i[t.id]:{};return!t.id||null!==(e=null==e?void 0:e.state.signals)&&void 0!==e&&e[t.id]?this.log(__assign({level:"verbose",message:'Signal "'+t.id+'" is using stored state',region:n},i)):this.log({level:"verbose",message:'Signal "'+t.id+'" is using default state',region:n}),i},e.prototype.loadPlugins=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return this._plugins?(t=this._plugins.findPlugins("initialize"),[4,Promise.all(t.map(function(e){return e.initialize({setIntentStrength:n.setIntentStrength.bind(n),log:n.log.bind(n),manifest:n._intentManifest})}))]):[2];case 1:return e.sent(),[2]}})})},e.prototype.loadSignalEvaluators=function(){var e,i=this;return((null===(e=this._plugins)||void 0===e?void 0:e.find("signalEvaluatorMapping"))||[]).reduce(function(t,e){var n=e();return Object.keys(n).forEach(function(e){t[e]&&i.log({level:"warn",region:"loadSignalEvaluators",message:"[Tracker]: Multiple plugins provided signal resolvers for "+e}),t[e]=n[e]}),t},{})},e.prototype.addIntents=function(e){var t=e.map(function(n){var e=n.signals;return __assign(__assign({},n),{signals:e.map(function(e){var t=e.id;return __assign(__assign({},e),{id:null!=t?t:n.id+":"+JSON.stringify(e)})})})});(e=this._intentMappings).push.apply(e,t)},e.prototype.readScoring=function(r){return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())&&this._decayStrategy?(n=__assign({},t),[4,this._decayStrategy(t)]):[3,3];case 2:void 0!==(i=e.sent())&&(t=i),i&&this.log({level:"verbose",message:"Score decay has been applied",region:"readScoring",pre:n,post:t}),e.label=3;case 3:return[2,t]}})})},e.prototype.getScopeStrategy=function(e){if(this._scopeStrategies)return this._scopeStrategies[e]},e.prototype.getAllScopeStrategies=function(){var t=this;return this._scopeStrategies?Object.keys(this._scopeStrategies).map(function(e){return t._scopeStrategies[e]}):[]},e.prototype.getScopeNames=function(e){return this._scopeStrategies?e&&this._scopeStrategies[e]?[e]:Object.keys(this._scopeStrategies):[]},e.prototype.resolveScope=function(s,o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r;return __generator(this,function(e){switch(e.label){case 0:return(t="Resolve Scope",n=s||Scope.Visitor,o&&s)?(r=o[s],[3,3]):[3,1];case 1:return[4,null===(a=this.getScopeStrategy(n))||void 0===a?void 0:a.get()];case 2:r=e.sent(),e.label=3;case 3:return(i=r)||this.log({level:"warn",message:'Scope "'+s+'" returned null or undefined',region:t}),(null==i?void 0:i.type)!==s&&void 0!==s&&this.log({level:"warn",message:'Scope "'+s+'" was requested, but "'+(null==i?void 0:i.type)+'" was resolved',region:t}),[2,i]}})})},e.prototype.initializeScopes=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getAllScopeStrategies(),[4,Promise.all(t.map(function(e){return e.initialize({log:n.log.bind(n),storage:n._storage.scopes})}))];case 1:return e.sent(),[2]}})})},e.prototype.applyScoringStrategy=function(e,t,n,i){i=this._scoringStrategy({previousValue:(null==t?void 0:t.values)||{},valueToAdd:n,signalCount:i});return this.writeScoring(e,i,t)},e.prototype.writeScoring=function(i,r,s){var o;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n="writeScoring",t=void 0,s&&(t=diffScores(r.values,s.values),0===Object.keys(t).length))?(this.log({level:"verbose",region:n,message:"Scoring update skipped for scope "+i+"; values unchanged"}),[2,r]):(this.log(__assign({level:"verbose",message:i+" scoring has been updated",region:n},scoreIsEmpty(r.values)?{cleared:!0}:r.values)),n=null===(o=null===(o=this._scopeStrategies)||void 0===o?void 0:o[i])||void 0===o?void 0:o.getExpiration(),[4,this._storage.scopes.setScoring(r,i,n,s,t)]);case 1:return e.sent(),[2,r]}})})},e.prototype.broadcastScoring=function(i){var r;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n=i)?[3,2]:[4,this.getIntentStrength()];case 1:n=e.sent(),e.label=2;case 2:return(t=n,!scoreIsEmpty(t)&&this._lastBroadcastScoring&&scoresAreEqual(this._lastBroadcastScoring,t))?(this.log({level:"verbose",region:"broadcastScoring",message:"Skipped broadcasting unchanged scoring",value:t}),[2]):(this._lastBroadcastScoring=t,null!==(r=this._plugins)&&void 0!==r&&r.scoringChange(function(e){return e(t||null)}),this._listeners.forEach(function(e){return e(t||null)}),[2])}})})},e.prototype.isKnownEnrichment=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.enrichments)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e}();export{OptimizeTracker};
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,a,l){return new(a=a||Promise)(function(n,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function r(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?n(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(i,r)}s((l=l.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,s,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,s&&(o=2&t[0]?s.return:t[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,t[1])).done)return o;switch(s=0,(t=o?[2&t[0],o.value]:t)[0]){case 0:case 1:o=t;break;case 4:return a.label++,{value:t[1],done:!1};case 5:a.label++,s=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(o=0<(o=a.trys).length&&o[o.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!o||t[1]>o[0]&&t[1]<o[3])){a.label=t[1];break}if(6===t[0]&&a.label<o[1]){a.label=o[1],o=t;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(t);break}o[2]&&a.ops.pop(),a.trys.pop();continue}t=i.call(n,a)}catch(e){t=[6,e],s=0}finally{r=o=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}},__rest=this&&this.__rest||function(e,t){var n={};for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},__spreadArray=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var i,r=0,s=t.length;r<s;r++)!i&&r in t||((i=i||Array.prototype.slice.call(t,0,r))[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))};import{IntentTagStrength,Scope,SignalFrequency,SignalType}from"@uniformdev/optimize-common";import{decayByDayStrategy}from"./decay/decayByDayStrategy";import{cumulativeScoringStrategy}from"./scoring/cumulativeScoringStrategy";import{calculateEnrichmentIntentName,getEnrichmentValue,getBrowserRequestContext}from"./utils";import{combineScores}from"./scoring/combineScores";import{diffScores}from"./scoring/diffScores";import{scoresAreEqual}from"./scoring/scoresAreEqual";import{scoreIsEmpty}from"./scoring/scoreIsEmpty";var OptimizeTracker=function(){function e(e){var t;this._intentMappings=[],this._behaviorQueue=[],this._behaviorKeys={},this._events=[],this._listeners=[],this._testSettings=[],this._signalEvaluators={},this._initialized=!1,this._lastBroadcastScoring=void 0,this._intentManifest=e.intentManifest,e.intentManifest&&this.addIntents(e.intentManifest.site.intents),this._plugins=e.plugins,this._storage=e.storage,this._scopeStrategies=e.scopes,this._scoringStrategy=null!==(t=e.scoring)&&void 0!==t?t:cumulativeScoringStrategy(),this._decayStrategy=null!==(t=e.decay)&&void 0!==t?t:decayByDayStrategy(),this._serverState=this.getServerState(),e.testing&&(t=Array.isArray(e.testing)?e.testing:[e.testing],(e=this._testSettings).push.apply(e,t))}return e.prototype.initialize=function(){var n,i;return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(e){switch(e.label){case 0:return this.log({level:"info",message:"Received intent manifest",region:"initialize",intents:this._intentManifest}),[4,this.initializeScopes()];case 1:return e.sent(),[4,this.loadPlugins()];case 2:return e.sent(),this._signalEvaluators=this.loadSignalEvaluators(),null!==(i=(n=this._storage.scopes).setScoringValueExternallyUpdatedCallback)&&void 0!==i&&i.call(n,function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.broadcastScoring()];case 1:return e.sent(),[2]}})})}),this._lastBroadcastScoring=void 0,this._initialized=!0,[2]}})})},e.prototype.isInitialized=function(){return this._initialized},e.prototype.getIntentStrength=function(n){return __awaiter(this,void 0,void 0,function(){var t,i,r=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(n),i={},[4,Promise.all(t.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),i[n]=t,[2]}})})}))];case 1:return e.sent(),[2,this.combineScoring(i)]}})})},e.prototype.getIntentStrengthSingle=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.getIntentStrength(i)];case 1:return[2,null==(t=e.sent())?void 0:t[n]]}})})},e.prototype.addIntentStrength=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.readScoring(n)];case 1:return t=e.sent(),[4,this.applyScoringStrategy(n,t,i,1)];case 2:return e.sent(),[4,this.broadcastScoring()];case 3:return e.sent(),[2]}})})},e.prototype.setIntentStrength=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.applyScoringStrategy(t,void 0,n,1)];case 1:return e.sent(),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.removeIntent=function(a,l){return __awaiter(this,void 0,void 0,function(){var t,s,o,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getScopeNames(null==l?void 0:l.scope),s="string"==typeof a?[a]:a,o=!1,[4,Promise.all(t.map(function(r){return __awaiter(n,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())?(i=!(n={}),Object.keys(t.values).map(function(e){a&&-1===(null==s?void 0:s.indexOf(e))?n[e]=t.values[e]:o=i=!0}),i?[4,this.writeScoring(r,__assign(__assign({},t),{values:n}),t)]:[3,4]):[3,4];case 2:return e.sent(),null!=l&&l.quiet?[3,4]:[4,this.broadcastScoring()];case 3:e.sent(),e.label=4;case 4:return[2]}})})}))];case 1:return e.sent(),[2,o]}})})},e.prototype.addScoringChangeListener=function(e){this._listeners.push(e)},e.prototype.removeScoringChangeListener=function(e){e=this._listeners.indexOf(e);-1<e&&this._listeners.splice(e,1)},e.prototype.reevaluateSignals=function(c){return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u=this;return __generator(this,function(e){switch(e.label){case 0:return(t="reevaluateSignals",this.log({level:"verbose",message:"Signals reevaluating...",region:t}),this._intentMappings&&this._intentMappings.length)?(n={},[4,Promise.all(this.getAllScopeStrategies().map(function(e){return e.get().then(function(e){e&&(n[null==e?void 0:e.type]=e)})}))]):(this.log({level:"warn",message:"Intents list is empty",region:t}),[2,{signalMatches:{}}]);case 1:return e.sent(),i=Object.keys(this._behaviorKeys),r=0===i.length?this._behaviorQueue:__spreadArray(__spreadArray([],this._behaviorQueue,!0),i.map(function(e){return u._behaviorKeys[e]}),!0),[4,Promise.all(this._intentMappings.map(function(e){return u.reevaluateIntent({intent:e,scopes:n,requestContext:c,behaviorQueue:r})}))];case 2:return s=e.sent(),s=s.flatMap(function(e){return e}),o=s.reduce(function(e,t){if(!t.statsScope||!t.statistics||!t.signal)return e;var n=t.statsScope.type;return(e[n]=null!==(n=e[n])&&void 0!==n?n:{})[t.signal.id]=t.statistics,e},{}),[4,Promise.all(Object.keys(o).map(function(e){var t;return null===(t=u.getScopeStrategy(e))||void 0===t?void 0:t.save(__assign(__assign({},n[e]),{statistics:__assign(__assign({},n[e].statistics||{}),o[e])}))}))];case 3:return e.sent(),a=this.processSignalEvaluations(s),[4,this.applySignalEvaluationSummary(a)];case 4:return l=e.sent(),[4,this.broadcastScoring(l)];case 5:return e.sent(),this.clearBehaviorQueue(),this.clearEventQueue(),this.log(__assign({level:"info",message:"Reevaluated signals",region:t},l)),[2,{scoring:l,signalMatches:Object.keys(a).reduce(function(e,t){return e[t]=a[t].matches,e},{})}]}})})},e.prototype.addBehaviorActivity=function(e,t){this.log(__assign(__assign({level:"verbose",region:"addBehaviorActivity",message:"Behavior activity added to queue"},e),{sourceKey:t})),t?this._behaviorKeys[t]=e:this._behaviorQueue.push(e)},e.prototype.addEvent=function(t,n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._events.push(t),n&&void 0!==n.quiet&&n.quiet?[3,2]:[4,this.reevaluateSignals()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.getEnrichmentValues=function(r,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(e){switch(e.label){case 0:return this.isKnownEnrichment(r)?[4,this.getIntentStrength(null==t?void 0:t.scope)]:[2,void 0];case 1:return i=e.sent()||{},[2,Object.keys(i||{}).reduce(function(e,t){var n=getEnrichmentValue(r,t);return n&&i[t].str&&(e[n]=Number(i[t].str||0)),e},{})]}})})},e.prototype.addEnrichment=function(v,p){var d;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a,l,u,c,g,h;return __generator(this,function(e){switch(e.label){case 0:for(t=(null==p?void 0:p.scope)||Scope.Visitor,n=Array.isArray(v)?v:[v],i={},r={},s=0,o=n;s<o.length;s++)a=o[s],this.isKnownEnrichment(a.name)&&(l=calculateEnrichmentIntentName(a.name,a.value),null!=p&&p.clearValues&&(r[a.name]=!0),u=Number((null===(d=i[l])||void 0===d?void 0:d.str)||0),i[l]={str:u+(a.str||IntentTagStrength.Normal)});c=0,g=Object.keys(r),e.label=1;case 1:return c<g.length?(h=g[c],[4,this.removeEnrichment(h,{scope:t,quiet:!0})]):[3,4];case 2:e.sent(),e.label=3;case 3:return c++,[3,1];case 4:return[4,this.readScoring(t)];case 5:return h=e.sent(),[4,this.applyScoringStrategy(t,h,i,n.length)];case 6:return e.sent(),null!=p&&p.quiet?[3,8]:[4,this.reevaluateSignals()];case 7:e.sent(),e.label=8;case 8:return[2]}})})},e.prototype.removeEnrichment=function(i,r){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return t=(null==r?void 0:r.scope)||Scope.Visitor,[4,this.getIntentStrength(t)];case 1:return n=e.sent()||{},n=Object.keys(n||{}).filter(function(e){if(getEnrichmentValue(i,e))return e},{}),[4,this.removeIntent(n,{scope:t,quiet:null==r?void 0:r.quiet})];case 2:return e.sent(),[2]}})})},e.prototype.trackPersonalization=function(t,n){var e;t&&null!==(e=this._plugins)&&void 0!==e&&e.track(function(e){return e(t,n)})},e.prototype.isInPersonalizationControlGroup=function(o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return(t=(r=o||{}).scope,n=r.sampleSize,i=new Date,r=this._testSettings.find(function(e){return e.strategy&&(!e.endDate||e.endDate>i)}))?(s=null!=t?t:Scope.Visitor,[4,null===(a=this.getScopeStrategy(s))||void 0===a?void 0:a.get()]):[2,!1];case 1:return s=e.sent(),[2,r.strategy.isInPersonalizationControlGroup(s,n)]}})})},e.prototype.getTestValue=function(t){var e=null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t});return null!=e&&e.winning_variation_id?Promise.resolve(e.winning_variation_id):null!==(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)&&void 0!==e&&e[t]?Promise.resolve(null===(e=null===(e=this._serverState)||void 0===e?void 0:e.tests)||void 0===e?void 0:e[t]):this._storage.tests.getTestSelection(t)},e.prototype.setTestValue=function(t,e){var n=null===(n=null===(n=this._intentManifest)||void 0===n?void 0:n.site.tests)||void 0===n?void 0:n.find(function(e){return e.name===t});return null!=n&&n.winning_variation_id?Promise.resolve():this._storage.tests.setTestSelection(t,e)},e.prototype.isTestEnabled=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.tests)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e.prototype.identify=function(r){var s;return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return(t=null===(s=this._storage)||void 0===s?void 0:s.scopes.identify)?[4,this._storage.scopes.getScoring(Scope.Visitor)]:(this.log({region:"identify",level:"warn",message:"Visitor was identified, but storage did not implement identification"}),[2]);case 1:return n=e.sent(),[4,t(r)];case 2:return(i=e.sent())?[4,this.writeScoring(Scope.Visitor,i,n)]:[3,5];case 3:return e.sent(),[4,this.broadcastScoring()];case 4:e.sent(),e.label=5;case 5:return[2]}})})},e.prototype.forgetMe=function(t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.all([this._storage.scopes.delete(t),this._storage.tests.delete()])];case 1:return e.sent(),this.log({level:"info",region:"forgetMe",message:"Visitor has been forgotten (allDevices: "+t+")"}),[4,this.broadcastScoring()];case 2:return e.sent(),[2]}})})},e.prototype.log=function(t){var e;null!==(e=this._plugins)&&void 0!==e&&e.log(function(e){return e(t)})},e.prototype.reevaluateSignal=function(e){var l,u=e.intent,c=e.scopes,g=e.signal,h=e.requestContext,v=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var t,n,i,r,s,o,a;return __generator(this,function(e){switch(e.label){case 0:return t="reevaluateSignal",[4,this.resolveFrequencyScope(g,c)];case 1:return n=e.sent(),[4,this.determineIfSignalShouldEvaluate(g,n)];case 2:return e.sent()?(i=this._signalEvaluators[g.type])?(g.str||g.str===IntentTagStrength.Antimatter||(this.log({level:"warn",message:"Strength not defined on signal, setting strength to "+IntentTagStrength.Normal,region:t}),g.str=IntentTagStrength.Normal),[4,this.resolveScope(g.scope,c)]):(this.log({level:"warn",message:"Signal "+g.type+" not handled by any plugin. It will be ignored.",region:t}),[2,void 0]):(this.log({level:"info",message:"Signal "+g.id+" will not evaluate",region:t}),[2,void 0]);case 3:return r=e.sent(),a=this.resolveSignalStorage(r,g),s={intent:u,signal:g,scope:r,statsScope:n},a={signal:g,intent:u,behaviors:v,state:a,requestContext:h||getBrowserRequestContext(),events:this._events,log:this.log.bind(this)},__rest(a,["requestContext","log"]),a=i(a),[4,Promise.resolve(a)];case 4:return o=e.sent(),this.log({level:"verbose",message:g.type+" Signal evaluation result: "+(null!=o&&o.strength?o.strength:"no match"),region:t,signal:g,intent:u,result:o}),void 0===(s.result=o)?[2,s]:g.id?[4,this.resolveFrequencyScope(g,c)]:[3,6];case 5:return(a=e.sent())&&(s.statistics=__assign(__assign({},null===(l=a.statistics)||void 0===l?void 0:l[g.id]),{evaluations:((null===(l=null===(l=a.statistics)||void 0===l?void 0:l[g.id])||void 0===l?void 0:l.evaluations)||0)+1})),r&&g.id&&o.state&&(r.state.signals=r.state.signals||{},r.state.signals[g.id]=o.state),[2,s];case 6:return[2]}})})},e.prototype.resolveFrequencyScope=function(n,i){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){return t=n.freq===SignalFrequency.OncePerVisit?Scope.Visit:Scope.Visitor,[2,this.resolveScope(t,i)]})})},e.prototype.determineIfSignalShouldEvaluate=function(e,t){return e.id?!e.freq||e.freq===SignalFrequency.Always||(e.type===SignalType.PageViewCount||!(null!==(e=null===(t=null==t?void 0:t.statistics)||void 0===t?void 0:t[e.id])&&void 0!==e&&e.evaluations)):(this.log({level:"info",region:"determineIfSignalShouldEvaluate",message:"Signal ID is not populated"}),!1)},e.prototype.combineScoring=function(t){var e=Object.keys(t).map(function(e){return t[e]}).filter(function(e){return e&&e.values}).map(function(e){return e.values});return combineScores.apply(void 0,e)},e.prototype.processSignalEvaluations=function(e){var s={};return e.forEach(function(e){var t=e.signal,n=e.scope,i=e.result,r=e.intent.id;n&&i&&(i.strength||i.strength===IntentTagStrength.Antimatter)&&(n=(e=s[n.type]=s[n.type]||{matches:[],score:{}}).score,e=e.matches,(n=n[r]=n[r]||{str:0}).str=Number(n.str)+Number(i.strength),e.push({intentId:r,signalStrength:i.strength,signalType:t.type}))}),this.log({level:"verbose",message:"Signal evaluation matches",region:"processSignalEvaluations",summary:s}),s},e.prototype.reevaluateIntent=function(e){var s=e.intent,o=e.scopes,a=e.requestContext,l=e.behaviorQueue;return __awaiter(this,void 0,void 0,function(){var i,t,n,r=this;return __generator(this,function(e){switch(e.label){case 0:return(i=[],t=s.id,(n=s.signals)&&0!==n.length)?[3,1]:(this.log({level:"warn",message:"Intent "+t+" does not define any signals.",region:"Reevaluate Intent"}),[3,3]);case 1:return[4,Promise.all(s.signals.map(function(n){return __awaiter(r,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,this.reevaluateSignal({intent:s,scopes:o,signal:n,requestContext:a,behaviorQueue:l})];case 1:return null!=(t=e.sent())&&t.result&&i.push(t),[2]}})})}))];case 2:e.sent(),e.label=3;case 3:return[2,i]}})})},e.prototype.clearBehaviorQueue=function(){var e,t,n=this._behaviorQueue.length,i=Object.keys(this._behaviorKeys).length;(n||i)&&(e=this._behaviorQueue.splice(0,n),t=this._behaviorKeys,this._behaviorKeys={},this.log({level:"verbose",message:"Queue cleared",region:"clearBehaviorQueue",count:n+i,cleared:e,clearedKeys:t}))},e.prototype.clearEventQueue=function(){var e;this._events.length&&(e=this._events.splice(0,this._events.length),this.log({level:"verbose",message:"Clearing event queue",region:"clearEventQueue",count:e.length,cleared:e}))},e.prototype.applySignalEvaluationSummary=function(l){return __awaiter(this,void 0,void 0,function(){var t,a,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return t="applySignalEvaluationSummary",n=this.getScopeNames(),a={},[4,Promise.all(n.map(function(o){return __awaiter(i,void 0,void 0,function(){var t,n,i,r,s;return __generator(this,function(e){switch(e.label){case 0:return i=l[o]||{matches:[],score:{}},t=i.score,n=i.matches,[4,this.readScoring(o)];case 1:return i=e.sent(),r=a,s=o,[4,this.applyScoringStrategy(o,i,t,n.length)];case 2:return r[s]=e.sent(),[2]}})})}))];case 1:return e.sent(),this.log(__assign({level:"verbose",message:"Scoring by scope",region:t},a)),n=this.combineScoring(a),this.log(__assign({level:"verbose",message:"Combined scope scoring",region:t},n)),[2,n]}})})},e.prototype.getServerState=function(){if(this._serverState)return this._serverState;if("undefined"!=typeof document){var e=document.getElementById("__UNIFORM_DATA__");if(null!=e&&e.textContent)return JSON.parse(e.textContent)}},e.prototype.resolveSignalStorage=function(e,t){var n="resolveSignalStorage",i=t.id?null===(i=null==e?void 0:e.state.signals)||void 0===i?void 0:i[t.id]:{};return!t.id||null!==(e=null==e?void 0:e.state.signals)&&void 0!==e&&e[t.id]?this.log(__assign({level:"verbose",message:'Signal "'+t.id+'" is using stored state',region:n},i)):this.log({level:"verbose",message:'Signal "'+t.id+'" is using default state',region:n}),i},e.prototype.loadPlugins=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return this._plugins?(t=this._plugins.findPlugins("initialize"),[4,Promise.all(t.map(function(e){return e.initialize({setIntentStrength:n.setIntentStrength.bind(n),log:n.log.bind(n),manifest:n._intentManifest})}))]):[2];case 1:return e.sent(),[2]}})})},e.prototype.loadSignalEvaluators=function(){var e,i=this;return((null===(e=this._plugins)||void 0===e?void 0:e.find("signalEvaluatorMapping"))||[]).reduce(function(t,e){var n=e();return Object.keys(n).forEach(function(e){t[e]&&i.log({level:"warn",region:"loadSignalEvaluators",message:"[Tracker]: Multiple plugins provided signal resolvers for "+e}),t[e]=n[e]}),t},{})},e.prototype.addIntents=function(e){var t=e.map(function(n){var e=n.signals;return __assign(__assign({},n),{signals:e.map(function(e){var t=e.id;return __assign(__assign({},e),{id:null!=t?t:n.id+":"+JSON.stringify(e)})})})});(e=this._intentMappings).push.apply(e,t)},e.prototype.readScoring=function(r){return __awaiter(this,void 0,void 0,function(){var t,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,this._storage.scopes.getScoring(r)];case 1:return(t=e.sent())&&this._decayStrategy?(n=__assign({},t),[4,this._decayStrategy(t)]):[3,3];case 2:void 0!==(i=e.sent())&&(t=i),i&&this.log({level:"verbose",message:"Score decay has been applied",region:"readScoring",pre:n,post:t}),e.label=3;case 3:return[2,t]}})})},e.prototype.getScopeStrategy=function(e){if(this._scopeStrategies)return this._scopeStrategies[e]},e.prototype.getAllScopeStrategies=function(){var t=this;return this._scopeStrategies?Object.keys(this._scopeStrategies).map(function(e){return t._scopeStrategies[e]}):[]},e.prototype.getScopeNames=function(e){return this._scopeStrategies?e&&this._scopeStrategies[e]?[e]:Object.keys(this._scopeStrategies):[]},e.prototype.resolveScope=function(s,o){var a;return __awaiter(this,void 0,void 0,function(){var t,n,i,r;return __generator(this,function(e){switch(e.label){case 0:return(t="Resolve Scope",n=s||Scope.Visitor,o&&s)?(r=o[s],[3,3]):[3,1];case 1:return[4,null===(a=this.getScopeStrategy(n))||void 0===a?void 0:a.get()];case 2:r=e.sent(),e.label=3;case 3:return(i=r)||this.log({level:"warn",message:'Scope "'+s+'" returned null or undefined',region:t}),(null==i?void 0:i.type)!==s&&void 0!==s&&this.log({level:"warn",message:'Scope "'+s+'" was requested, but "'+(null==i?void 0:i.type)+'" was resolved',region:t}),[2,i]}})})},e.prototype.initializeScopes=function(){return __awaiter(this,void 0,void 0,function(){var t,n=this;return __generator(this,function(e){switch(e.label){case 0:return t=this.getAllScopeStrategies(),[4,Promise.all(t.map(function(e){return e.initialize({log:n.log.bind(n),storage:n._storage.scopes})}))];case 1:return e.sent(),[2]}})})},e.prototype.applyScoringStrategy=function(e,t,n,i){i=this._scoringStrategy({previousValue:(null==t?void 0:t.values)||{},valueToAdd:n,signalCount:i});return this.writeScoring(e,i,t)},e.prototype.writeScoring=function(i,r,s){var o;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n="writeScoring",t=void 0,s&&(t=diffScores(r.values,s.values),0===Object.keys(t).length))?(this.log({level:"verbose",region:n,message:"Scoring update skipped for scope "+i+"; values unchanged"}),[2,r]):(this.log(__assign({level:"verbose",message:i+" scoring has been updated",region:n},scoreIsEmpty(r.values)?{cleared:!0}:r.values)),n=null===(o=null===(o=this._scopeStrategies)||void 0===o?void 0:o[i])||void 0===o?void 0:o.getExpiration(),[4,this._storage.scopes.setScoring(r,i,n,s,t)]);case 1:return e.sent(),[2,r]}})})},e.prototype.broadcastScoring=function(i){var r;return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return(n=i)?[3,2]:[4,this.getIntentStrength()];case 1:n=e.sent(),e.label=2;case 2:return(t=n,!scoreIsEmpty(t)&&this._lastBroadcastScoring&&scoresAreEqual(this._lastBroadcastScoring,t))?(this.log({level:"verbose",region:"broadcastScoring",message:"Skipped broadcasting unchanged scoring",value:t}),[2]):(this._lastBroadcastScoring=t,null!==(r=this._plugins)&&void 0!==r&&r.scoringChange(function(e){return e(t||null)}),this._listeners.forEach(function(e){return e(t||null)}),[2])}})})},e.prototype.isKnownEnrichment=function(t){var e;return!!(null===(e=null===(e=this._intentManifest)||void 0===e?void 0:e.site.enrichments)||void 0===e?void 0:e.find(function(e){return e.name===t}))},e}();export{OptimizeTracker};
{
"name": "@uniformdev/optimize-tracker",
"version": "11.0.1-alpha.55+0127b48",
"version": "11.0.1-alpha.65+a1ddbff",
"description": "Uniform Optimize tracker",

@@ -29,4 +29,4 @@ "license": "SEE LICENSE IN LICENSE.txt",

"dependencies": {
"@uniformdev/optimize-common": "^11.0.1-alpha.55+0127b48",
"@uniformdev/optimize-tracker-common": "^11.0.1-alpha.55+0127b48",
"@uniformdev/optimize-common": "^11.0.1-alpha.65+a1ddbff",
"@uniformdev/optimize-tracker-common": "^11.0.1-alpha.65+a1ddbff",
"uuid": ">=7.0.0"

@@ -45,3 +45,3 @@ },

"ts-jest": "27.0.5",
"typescript": "4.3.5"
"typescript": "4.4.3"
},

@@ -54,3 +54,3 @@ "files": [

},
"gitHead": "0127b48fc5c58590e64a206f828fe0bae0b90d11"
"gitHead": "a1ddbff0a3bedc3f44c39f6f8ca254a32f26267e"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc